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
sourceimpl<'a, H: Handler> ConstantSingleRecordReport<'a, H>
impl<'a, H: Handler> ConstantSingleRecordReport<'a, H>
sourcepub fn new(handler: H, attributes: &'a [Attribute]) -> Self
pub fn new(handler: H, attributes: &'a [Attribute]) -> Self
Wrap a handler with attributes reported at its single path
sourcepub fn new_with_path(
handler: H,
attributes: &'a [Attribute],
path: &'a [&'a str]
) -> Self
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
sourceimpl<'a, H: Handler> Handler for ConstantSingleRecordReport<'a, H>
impl<'a, H: Handler> Handler for ConstantSingleRecordReport<'a, H>
type RequestData = H::RequestData
fn extract_request_data(&mut self, m: &impl ReadableMessage) -> H::RequestData
fn estimate_length(&mut self, r: &Self::RequestData) -> usize
fn build_response(
&mut self,
m: &mut impl MutableWritableMessage,
r: Self::RequestData
)
sourceimpl<'a, H: Handler> Reporting for ConstantSingleRecordReport<'a, H>
impl<'a, H: Handler> Reporting for ConstantSingleRecordReport<'a, H>
type Record = ConstantSliceRecord<'b>
type Reporter = Once<ConstantSliceRecord<'b>>
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<'a, OldRD, OldH> HandlerBuilder<'a, OldRD> for OldH where
OldH: Handler<RequestData = OldRD>,
impl<'a, OldRD, OldH> HandlerBuilder<'a, OldRD> for OldH where
OldH: Handler<RequestData = OldRD>,
sourcefn at<H>(self, path: &'a [&'a str], handler: H) -> ForkingHandler<'a, H, Self> where
H: Handler + Sized,
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
sourcefn at_with_attributes<H>(
self,
path: &'a [&'a str],
attributes: &'a [Attribute],
handler: H
) -> ForkingHandler<'a, ConstantSingleRecordReport<'a, H>, Self> where
H: Handler + Sized,
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