pub struct BufEncoder<const CAP: usize> { /* private fields */ }
Expand description
Hex-encodes bytes into the provided buffer.
This is an important building block for fast hex-encoding. Because string writing tools
provided by core::fmt
involve dynamic dispatch and don’t allow reserving capacity in strings
buffering the hex and then formatting it is significantly faster.
Implementations§
Source§impl<const CAP: usize> BufEncoder<CAP>
impl<const CAP: usize> BufEncoder<CAP>
Sourcepub fn new(case: Case) -> Self
pub fn new(case: Case) -> Self
Creates an empty BufEncoder
that will encode bytes to hex characters in the given case.
Sourcepub fn put_bytes<I>(&mut self, bytes: I)
pub fn put_bytes<I>(&mut self, bytes: I)
Encodes bytes
as hex and appends them to the buffer.
§Panics
The method panics if the bytes wouldn’t fit the buffer.
Sourcepub fn put_bytes_min<'a>(&mut self, bytes: &'a [u8]) -> &'a [u8] ⓘ
pub fn put_bytes_min<'a>(&mut self, bytes: &'a [u8]) -> &'a [u8] ⓘ
Encodes as many bytes
as fit into the buffer as hex and return the remainder.
This method works just like put_bytes
but instead of panicking it returns the unwritten
bytes. The method returns an empty slice if all bytes were written
Sourcepub fn space_remaining(&self) -> usize
pub fn space_remaining(&self) -> usize
How many bytes can be written to this buffer.
Note that this returns the number of bytes before encoding, not number of hex digits.