coap_new_client_session, coap_proto_t_COAP_PROTO_DTLS, coap_proto_t_COAP_PROTO_TCP, coap_proto_t_COAP_PROTO_UDP,
coap_register_event_handler, coap_session_get_app_data, coap_session_get_context, coap_session_get_type,
coap_session_type_t_COAP_SESSION_TYPE_NONE, coap_session_type_t_COAP_SESSION_TYPE_SERVER, COAP_TOKEN_DEFAULT_MAX,
/// Initializes a new [`CoapClientSessionInner`] for an unencrypted session from its raw counterpart
/// (see [RFC 7252, section 5.3.1](https://datatracker.ietf.org/doc/html/rfc7252#section-5.3.1)).
unsafe fn new(raw_session: *mut coap_session_t) -> CoapFfiRcCell<CoapClientSessionInner<'a>> {
/// Initializes a new [`CoapClientSessionInner`] for an encrypted session from its raw counterpart
/// Create a new DTLS encrypted session with the given peer `addr` using the given `crypto_ctx`.
inner: unsafe { CoapClientSessionInner::new_with_crypto_ctx(raw_session.as_ptr(), crypto_ctx) },
/// Therefore, callers of this function should ensure that the created session instance does not
/// The provided pointer must be valid, the provided session's app data must be a valid argument
pub(crate) unsafe fn from_raw<'a>(raw_session: *mut coap_session_t) -> CoapClientSession<'a> {