coap_handler_implementations::wkc

Struct ConstantSingleRecordReport

Source
pub struct ConstantSingleRecordReport<'a, H: Handler> { /* private fields */ }
Expand description

Wrapper around arbitrary Handlers to make them report some attributes. The path is often configured empty, relying on the tree builder to augment it with the actual path.

This helps integrating handler implementations that do not manually implement Reporting.

Any Reporting the handler might implement is overridden by this.

Implementations§

Source§

impl<'a, H: Handler> ConstantSingleRecordReport<'a, H>

Source

pub fn new(handler: H, attributes: &'a [Attribute]) -> Self

Wrap a handler with attributes reported at its single path

Source

pub fn new_with_path( handler: H, attributes: &'a [Attribute], path: &'a [&'a str], ) -> Self

Wrap a handler with attributes and additional path components

Compared to .new(), this is primarily useful for handlers that do perform own path processing (and are thus instanciated .below() some path), but whose root resource is not the resource below which is put. This is a typical case: To use relative references, it is convenient to make a handler go .below(&["path"]), but then expect an extra / segment (an empty component in the path list) at the end – and then deal out relative references like 1 or ./2 to go to /path/2. Such handlers put &[""] in the path argument.

Trait Implementations§

Source§

impl<'a, H: Handler> Handler for ConstantSingleRecordReport<'a, H>

Source§

type RequestData = <H as Handler>::RequestData

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

type ExtractRequestError = <H as Handler>::ExtractRequestError

Source§

type BuildResponseError<M: MinimalWritableMessage> = <H as Handler>::BuildResponseError<M>

Source§

fn extract_request_data<M: ReadableMessage>( &mut self, m: &M, ) -> Result<H::RequestData, Self::ExtractRequestError>

Process an incoming request. Read more
Source§

fn estimate_length(&mut self, r: &Self::RequestData) -> usize

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

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

Build a response for the request Read more
Source§

impl<'a, H: Handler> Reporting for ConstantSingleRecordReport<'a, H>

Source§

type Record<'b> = ConstantSliceRecord<'b> where Self: 'b

Source§

type Reporter<'b> = Once<ConstantSliceRecord<'b>> where Self: 'b

Source§

fn report(&self) -> Self::Reporter<'_>

Auto Trait Implementations§

§

impl<'a, H> Freeze for ConstantSingleRecordReport<'a, H>
where H: Freeze,

§

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

§

impl<'a, H> Send for ConstantSingleRecordReport<'a, H>
where H: Send,

§

impl<'a, H> Sync for ConstantSingleRecordReport<'a, H>
where H: Sync,

§

impl<'a, H> Unpin for ConstantSingleRecordReport<'a, H>
where H: Unpin,

§

impl<'a, H> UnwindSafe for ConstantSingleRecordReport<'a, H>
where H: UnwindSafe,

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

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

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<'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: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.