pub struct EncodingDecoder<'buf, E: BufferEncoding> { /* private fields */ }Expand description
Stateful cursor over a &[u8] wire buffer that reads decoded bytes
through E: BufferEncoding. Constructed by MctpMedium::deserialize
and handed to higher layers so they cannot bypass the encoding by
slicing the underlying buffer directly.
Implementations§
Source§impl<'buf, E: BufferEncoding> EncodingDecoder<'buf, E>
impl<'buf, E: BufferEncoding> EncodingDecoder<'buf, E>
Sourcepub fn new(buf: &'buf [u8]) -> Self
pub fn new(buf: &'buf [u8]) -> Self
Wrap a wire-byte buffer for stateful encoding-mediated reads.
Sourcepub fn read(&mut self) -> Result<u8, DecodeError>
pub fn read(&mut self) -> Result<u8, DecodeError>
Read one decoded byte. Advances the wire cursor by the encoding’s
per-byte wire footprint. Returns DecodeError::PrematureEnd when
the wire buffer is exhausted (or ends mid-escape) and
DecodeError::InvalidEscape for malformed escape sequences.
Auto Trait Implementations§
impl<'buf, E> Freeze for EncodingDecoder<'buf, E>
impl<'buf, E> RefUnwindSafe for EncodingDecoder<'buf, E>where
E: RefUnwindSafe,
impl<'buf, E> Send for EncodingDecoder<'buf, E>where
E: Send,
impl<'buf, E> Sync for EncodingDecoder<'buf, E>where
E: Sync,
impl<'buf, E> Unpin for EncodingDecoder<'buf, E>where
E: Unpin,
impl<'buf, E> UnsafeUnpin for EncodingDecoder<'buf, E>
impl<'buf, E> UnwindSafe for EncodingDecoder<'buf, E>where
E: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more