riot_coap_handler_demos::saul

Struct SaulHandler

Source
pub struct SaulHandler {
    prefix: &'static [&'static str],
}
Available on crate feature saul only.
Expand description

A handler for SAUL requests, using SAUL_MATCH_SUBTREE to manage its resources.

The path this is registered at must be passed in as the prefix, as link-format responses necessitate knowing one’s own path, and the prefix needs to be stripped off when processing the Uri-Path options.

As the link-format handler is bad, the name must be simple.

Fields§

§prefix: &'static [&'static str]

Implementations§

Source§

impl SaulHandler

Source

pub fn new(prefix: &'static [&'static str]) -> Self

Create a SaulHandler

The prefix needs to be passed in in order to produce proper link-format responses which can not be path-relative, and should thus be equal to the prefix assigned in the tree.

Source

fn put_value( &self, entry: RegistryEntry, content_format: ContentFormat, body: &[u8], ) -> Result<(), Error>

Trait Implementations§

Source§

impl Handler for SaulHandler

Source§

type RequestData = SaulRequest

Type constructed in extract_request_data() passed on to build_response(). Read more
Source§

type ExtractRequestError = Error

Source§

type BuildResponseError<M: MinimalWritableMessage> = Error

Source§

fn extract_request_data<M: ReadableMessage>( &mut self, request: &M, ) -> Result<SaulRequest, Error>

Process an incoming request. Read more
Source§

fn estimate_length(&mut self, _: &<Self as Handler>::RequestData) -> usize

Estimate an upper bound for the number of bytes in the response Read more
Source§

fn build_response<M: MutableWritableMessage>( &mut self, response: &mut M, request: Self::RequestData, ) -> Result<(), Self::BuildResponseError<M>>

Build a response for the request Read more
Source§

impl Reporting for SaulHandler

A SaulHandler lists all its SAUL devices in /.well-known/core. This is especially useful when registering at a Resource Directory using simple registration and lookup clients try to discover sensors.

Auto Trait Implementations§

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<'a, OldRD, OldH> HandlerBuilder<'a, OldRD> for OldH
where OldH: Handler<RequestData = OldRD>,

Source§

fn at<H>(self, path: &'a [&'a str], handler: H) -> ForkingHandler<'a, H, Self>
where H: Handler,

Divert requests arriving at path into the given handler. Read more
Source§

fn at_with_attributes<H>( self, path: &'a [&'a str], attributes: &'a [Attribute], handler: H, ) -> ForkingHandler<'a, ConstantSingleRecordReport<'a, H>, Self>
where H: Handler,

Divert requests arriving at path into the given handler, and announce them with the given attributes in .well-known/core. Read more
Source§

fn below<H>( self, path: &'a [&'a str], handler: H, ) -> ForkingTreeHandler<'a, H, Self>

Divert requests arriving with an Uri-Path starting with path to the given handler. Read more
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<'a, OldRD, OldH> ReportingHandlerBuilder<'a, OldRD> for OldH
where OldH: Handler<RequestData = OldRD> + Reporting,

Source§

fn with_wkc(self) -> WellKnownCore<Self>

Add a /.well-known/core resource that exposes the information the previous (stack of) handler(s) exposes throught the Reporting trait.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 8 bytes