Struct rcobs::Encoder [−][src]
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: Write> Encoder<W>
[src]
pub 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.
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,
W: RefUnwindSafe,
impl<W> Send for Encoder<W> where
W: Send,
W: Send,
impl<W> Sync for Encoder<W> where
W: Sync,
W: Sync,
impl<W> Unpin for Encoder<W> where
W: Unpin,
W: Unpin,
impl<W> UnwindSafe for Encoder<W> where
W: UnwindSafe,
W: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,