pub struct SingleHandlerListener<'a, H> { /* private fields */ }
Available on riot_module_gcoap only.
Expand description

A combination of the coap_resource_t and gcoap_listener_t structs with only a single resource (Compared to many resources, this allows easier creation in Rust at the expense of larger memory consumption and slower lookups in Gcoap).

A listener l can be hooked into the global Gcoap registry using scope(|x| { x.register(l) }).

Implementations§

source§

impl<'a, H> SingleHandlerListener<'a, H>
where H: 'a + Handler,

source

pub fn new(path: &'a CStr, methods: u32, handler: &'a mut H) -> Self

source

pub fn new_catch_all(handler: &'a mut H) -> Self

Create a listener whose single resource catches all requests and processes them through the handler.

This is equivalent to a new single listener at “/” that takes all methods and matches on subtrees.

Note that the taken Handler is a Gcoap Handler (which is there really only in case anyone wants extremely fine-grained control of what gcoap does); if you have a [coap_handler::Handler], you can wrap it in crate::coap_handler::GcoapHandler to for adaptation.

source§

impl<'a, H> SingleHandlerListener<'a, H>
where H: 'a + Handler + WithLinkEncoder,

Like Self::new(), but utilizing that the handler is also WithLinkEncoder and can thus influence what is reported when the default .well-known/core handler is queried.

Trait Implementations§

source§

impl<'a, H> ListenerProvider for SingleHandlerListener<'a, H>
where H: 'a + Handler,

source§

unsafe fn get_listener(&mut self) -> &mut gcoap_listener_t

Provide an exclusive reference to the underlying gcoap listener. The function is marked unsafe as the returned value contains raw pointers that will later be dereferenced, and returning arbitrary pointers would make RegistratinScope::register() pass bad data on to C.

Auto Trait Implementations§

§

impl<'a, H> RefUnwindSafe for SingleHandlerListener<'a, H>
where H: RefUnwindSafe,

§

impl<'a, H> !Send for SingleHandlerListener<'a, H>

§

impl<'a, H> !Sync for SingleHandlerListener<'a, H>

§

impl<'a, H> Unpin for SingleHandlerListener<'a, H>

§

impl<'a, H> UnwindSafe for SingleHandlerListener<'a, H>
where H: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoSwitch for T

source§

fn into_switch<ActiveLevel>(self) -> Switch<T, ActiveLevel>

Consumes the IoPin returning a Switch of the appropriate ActiveLevel. Read more
source§

fn into_active_low_switch(self) -> Switch<Self, ActiveLow>
where Self: Sized,

Consumes the IoPin returning a Switch<IoPin, ActiveLow>. Read more
source§

fn into_active_high_switch(self) -> Switch<Self, ActiveHigh>
where Self: Sized,

Consumes the IoPin returning a Switch<IoPin, ActiveHigh>. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.