Struct cobs::EncoderState

source ·
pub struct EncoderState { /* private fields */ }
Expand description

The EncoderState is used to track the current state of a streaming encoder. This struct does not contain the output buffer (or a reference to one), and can be used when streaming the encoded output to a custom data type

IMPORTANT NOTE: When implementing a custom streaming encoder, the EncoderState state machine assumes that the output buffer ALREADY contains a single placeholder byte, and no other bytes. This placeholder byte will be later modified with the first distance to the next header/zero byte.

Implementations§

source§

impl EncoderState

source

pub fn push(&mut self, data: u8) -> PushResult

Push a single unencoded byte into the encoder state machine

source

pub fn finalize(self) -> (usize, u8)

Finalize the encoding process for a single message. The byte at the given index should be replaced with the given value, and the sentinel value (typically 0u8) must be inserted at the current end of the output buffer, serving as a framing byte.

Trait Implementations§

source§

impl Clone for EncoderState

source§

fn clone(&self) -> EncoderState

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for EncoderState

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for EncoderState

source§

fn default() -> Self

Create a default initial state representation for a COBS encoder

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.