Struct rzcobs::Encoder[][src]

pub struct Encoder<W> { /* fields omitted */ }
Expand description

Streaming encoder

Allows encoding of reverse-COBS messages in a streaming fashion, with almost no memory usage (internal state is just one single byte!).

To encode a message, call write for each byte in the message, then call end.

You may use the same Encoder instance to encode multiple messages. In this case, you will probably want to separate messages with a 0x00, which you have to write manually after calling end, for example with encoder.writer().write(0).

Implementations

impl<W> Encoder<W>[src]

pub const fn new(w: W) -> Self[src]

Create a new encoder with the given writer.

pub fn writer(&mut self) -> &mut W[src]

Mutably borrow the inner writer.

impl<W: Write> Encoder<W>[src]

pub fn write(&mut self, byte: u8) -> Result<(), W::Error>[src]

Write a message byte.

pub fn end(&mut self) -> Result<(), W::Error>[src]

Finish encoding a message.

This does NOT write a 0x00 separator byte, you must write it yourself if you so desire.

Auto Trait Implementations

impl<W> RefUnwindSafe for Encoder<W> where
    W: RefUnwindSafe

impl<W> Send for Encoder<W> where
    W: Send

impl<W> Sync for Encoder<W> where
    W: Sync

impl<W> Unpin for Encoder<W> where
    W: Unpin

impl<W> UnwindSafe for Encoder<W> where
    W: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.