pub struct TypeHandler<H, S: TypeSerializer = SerdeCBORSerialization>where
H: TypeRenderable,{ /* private fields */ }
Expand description
Wrapper for resource handlers that are implemented in terms of GETting, POSTing or PUTting objects in CBOR format.
The wrapper handles all encoding and decoding, options processing (ignoring the critical Uri-Path option under the assumption that that has been already processed by an underlying request router), the corresponding errors and block-wise GETs.
More complex handlers (eg. implementing additional representations, or processing query aprameters into additional data available to the TypeRenderable) can be built by forwarding to this (where any critical but already processed options would need to be masked from the message’s option) or taking inspiration from it.
Implementations§
source§impl<H> TypeHandler<H, SerdeCBORSerialization>where
H: TypeRenderable,
H::Get: for<'de> Serialize,
H::Post: for<'de> Deserialize<'de>,
H::Put: for<'de> Deserialize<'de>,
impl<H> TypeHandler<H, SerdeCBORSerialization>where
H: TypeRenderable,
H::Get: for<'de> Serialize,
H::Post: for<'de> Deserialize<'de>,
H::Put: for<'de> Deserialize<'de>,
source§impl<H> TypeHandler<H, MiniCBORSerialization>
impl<H> TypeHandler<H, MiniCBORSerialization>
pub fn new_minicbor(handler: H) -> Self
Trait Implementations§
source§impl<H> Handler for TypeHandler<H, SerdeCBORSerialization>where
H: TypeRenderable,
H::Get: for<'de> Serialize,
H::Post: for<'de> Deserialize<'de>,
H::Put: for<'de> Deserialize<'de>,
impl<H> Handler for TypeHandler<H, SerdeCBORSerialization>where
H: TypeRenderable,
H::Get: for<'de> Serialize,
H::Post: for<'de> Deserialize<'de>,
H::Put: for<'de> Deserialize<'de>,
§type RequestData = TypeRequestData
type RequestData = TypeRequestData
§type ExtractRequestError = Error
type ExtractRequestError = Error
Error type for
extract_request_data()
. Read more§type BuildResponseError<M: MinimalWritableMessage> = <M as MinimalWritableMessage>::UnionError
type BuildResponseError<M: MinimalWritableMessage> = <M as MinimalWritableMessage>::UnionError
Error type for writing response data. Read more
source§fn extract_request_data<M: ReadableMessage>(
&mut self,
request: &M
) -> Result<Self::RequestData, Error>
fn extract_request_data<M: ReadableMessage>( &mut self, request: &M ) -> Result<Self::RequestData, Error>
Process an incoming request. Read more
source§fn estimate_length(&mut self, request: &Self::RequestData) -> usize
fn estimate_length(&mut self, request: &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,
response: &mut M,
request: Self::RequestData
) -> Result<(), Self::BuildResponseError<M>>
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<H> Handler for TypeHandler<H, MiniCBORSerialization>
impl<H> Handler for TypeHandler<H, MiniCBORSerialization>
§type RequestData = TypeRequestData
type RequestData = TypeRequestData
§type ExtractRequestError = Error
type ExtractRequestError = Error
Error type for
extract_request_data()
. Read more§type BuildResponseError<M: MinimalWritableMessage> = <M as MinimalWritableMessage>::UnionError
type BuildResponseError<M: MinimalWritableMessage> = <M as MinimalWritableMessage>::UnionError
Error type for writing response data. Read more
source§fn extract_request_data<M: ReadableMessage>(
&mut self,
request: &M
) -> Result<Self::RequestData, Error>
fn extract_request_data<M: ReadableMessage>( &mut self, request: &M ) -> Result<Self::RequestData, Error>
Process an incoming request. Read more
source§fn estimate_length(&mut self, request: &Self::RequestData) -> usize
fn estimate_length(&mut self, request: &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,
response: &mut M,
request: Self::RequestData
) -> Result<(), Self::BuildResponseError<M>>
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
Auto Trait Implementations§
impl<H, S> RefUnwindSafe for TypeHandler<H, S>where
H: RefUnwindSafe,
S: RefUnwindSafe,
impl<H, S> Send for TypeHandler<H, S>
impl<H, S> Sync for TypeHandler<H, S>
impl<H, S> Unpin for TypeHandler<H, S>
impl<H, S> UnwindSafe for TypeHandler<H, S>where
H: UnwindSafe,
S: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<'a, OldRD, OldH> HandlerBuilder<'a, OldRD> for OldHwhere
OldH: Handler<RequestData = OldRD>,
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, Self>
fn at<H>(self, path: &'a [&'a str], handler: H) -> ForkingHandler<'a, H, Self>
source§fn at_with_attributes<H>(
self,
path: &'a [&'a str],
attributes: &'a [Attribute],
handler: H
) -> ForkingHandler<'a, ConstantSingleRecordReport<'a, H>, Self>
fn at_with_attributes<H>( self, path: &'a [&'a str], attributes: &'a [Attribute], handler: H ) -> ForkingHandler<'a, ConstantSingleRecordReport<'a, H>, Self>
Divert requests arriving at
path
into the given handler
, and announce them with the
given attributes in .well-known/core. Read more