Skip to main content

FrameSink

Trait FrameSink 

Source
pub trait FrameSink {
    // Required methods
    fn clear(&mut self);
    fn frame_len(&self) -> usize;
    fn free_capacity(&self) -> usize;
    fn push(&mut self, byte: u8) -> Result<(), FrameSinkError>;
    fn extend_from_slice(&mut self, run: &[u8]) -> Result<(), FrameSinkError>;
}
Expand description

Writes are all-or-nothing: a push or extend_from_slice that would exceed the sink’s capacity appends nothing and returns FrameSinkError::Full, so a rejected frame never leaves a partial tail behind.

Required Methods§

Source

fn clear(&mut self)

Source

fn frame_len(&self) -> usize

Source

fn free_capacity(&self) -> usize

Source

fn push(&mut self, byte: u8) -> Result<(), FrameSinkError>

Source

fn extend_from_slice(&mut self, run: &[u8]) -> Result<(), FrameSinkError>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl FrameSink for Vec<u8>

Available on crate feature std only.
Source§

fn clear(&mut self)

Source§

fn frame_len(&self) -> usize

Source§

fn free_capacity(&self) -> usize

Source§

fn push(&mut self, byte: u8) -> Result<(), FrameSinkError>

Source§

fn extend_from_slice(&mut self, run: &[u8]) -> Result<(), FrameSinkError>

Implementors§

Source§

impl<const FRAME: usize> FrameSink for FrameSlot<FRAME>

As a FrameSink the slot is a streaming deframer’s destination: len is the accumulation cursor, and the committer stamps target when the frame is done.