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>

§

type RequestData = <H as Handler>::RequestData

source§

fn extract_request_data(&mut self, m: &impl ReadableMessage) -> H::RequestData

source§

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

source§

fn build_response( &mut self, m: &mut impl MutableWritableMessage, r: Self::RequestData )

source§

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

§

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

§

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

source§

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

Auto Trait Implementations§

§

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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<'a, OldRD, OldH> HandlerBuilder<'a, OldRD> for OldHwhere OldH: Handler<RequestData = OldRD>,

source§

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

👎Deprecated
Divert requests arriving at path into the given handler. Read more
source§

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

const: unstable · 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> Same<T> for T

§

type Output = T

Should always be Self
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.