Struct coap_scroll_ring_server::BufferHandler
source · pub struct BufferHandler<'a, const N: usize>(_);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 = Result<RequestedScrollbufPosition, u8>
fn extract_request_data( &mut self, req: &impl ReadableMessage ) -> Result<RequestedScrollbufPosition, u8>
fn estimate_length(&mut self, _: &<Self as Handler>::RequestData) -> usize
fn build_response( &mut self, res: &mut impl MutableWritableMessage, req: Result<RequestedScrollbufPosition, u8> )
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<'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