Struct coap_scroll_ring_server::BufferHandler
source · pub struct BufferHandler<'a, const N: usize>(/* private fields */);
Expand description
CoAP handler for reading from a Buffer
This implements a variant of the proposed stdio handling. It deviates in some details, in particular:
- It uses CBOR streams rather than a response array, and no array pairs.
- It always sends offset and a single data item (effecively leaving it open whether the pattern
would be continued
[5, "hello ", 11, "world"]
or[5, "hello ", "world"]
). - GET always reports the oldest available data (that’s probably underspecified in the original proposal)
- GETs return immediately.
- FETCH only takes a single integer: where to start.
- No paired channel.
Implementations§
source§impl<'a, const N: usize> BufferHandler<'a, N>
impl<'a, const N: usize> BufferHandler<'a, N>
sourcepub fn new(buffer: &'a Buffer<N>) -> Self
pub fn new(buffer: &'a Buffer<N>) -> Self
Construct a handler for a buffer
This adds nothing to the buffer other than the selection of the CoAP serialization; if it were not for separation of concerns, the coap_handler implementation could just as well be on the buffer itself.
Trait Implementations§
source§impl<'a, const N: usize> Handler for BufferHandler<'a, N>
impl<'a, const N: usize> Handler for BufferHandler<'a, N>
§type RequestData = RequestedScrollbufPosition
type RequestData = RequestedScrollbufPosition
§type ExtractRequestError = Error
type ExtractRequestError = Error
Error type for
extract_request_data()
. Read more§type BuildResponseError<M: MinimalWritableMessage> = BuildResponseError<<M as MinimalWritableMessage>::UnionError>
type BuildResponseError<M: MinimalWritableMessage> = BuildResponseError<<M as MinimalWritableMessage>::UnionError>
Error type for writing response data. Read more
source§fn extract_request_data<M: ReadableMessage>(
&mut self,
req: &M
) -> Result<RequestedScrollbufPosition, Error>
fn extract_request_data<M: ReadableMessage>( &mut self, req: &M ) -> Result<RequestedScrollbufPosition, Error>
Process an incoming request. Read more
source§fn estimate_length(&mut self, _: &<Self as Handler>::RequestData) -> usize
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,
res: &mut M,
mode: RequestedScrollbufPosition
) -> Result<(), Self::BuildResponseError<M>>
fn build_response<M: MutableWritableMessage>( &mut self, res: &mut M, mode: RequestedScrollbufPosition ) -> Result<(), Self::BuildResponseError<M>>
Build a response for the request Read more
Auto Trait Implementations§
impl<'a, const N: usize> !RefUnwindSafe for BufferHandler<'a, N>
impl<'a, const N: usize> Send for BufferHandler<'a, N>
impl<'a, const N: usize> Sync for BufferHandler<'a, N>
impl<'a, const N: usize> Unpin for BufferHandler<'a, N>
impl<'a, const N: usize> !UnwindSafe for BufferHandler<'a, N>
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>where
H: Handler,
fn at<H>(self, path: &'a [&'a str], handler: H) -> ForkingHandler<'a, H, Self>where
H: Handler,
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,
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