pub trait Codec: Default {
// Required methods
fn decode<'a>(&'a self, bytes: &'a [u8]) -> &'a [u8] ⓘ;
fn encode<R>(
&mut self,
bytes: &[u8],
output: &mut R,
) -> <R as Region>::Index
where R: for<'a> Region + for<'a> Push<&'a [u8]>;
fn new_from<'a, I>(stats: I) -> Self
where I: Iterator<Item = &'a Self> + Clone,
Self: 'a;
fn heap_size<F>(&self, callback: F)
where F: FnMut(usize, usize);
// Provided method
fn report(&self) { ... }
}
Expand description
Encode and decode byte strings.
Required Methods§
Sourcefn decode<'a>(&'a self, bytes: &'a [u8]) -> &'a [u8] ⓘ
fn decode<'a>(&'a self, bytes: &'a [u8]) -> &'a [u8] ⓘ
Decodes an input byte slice into a sequence of byte slices.
Sourcefn encode<R>(&mut self, bytes: &[u8], output: &mut R) -> <R as Region>::Index
fn encode<R>(&mut self, bytes: &[u8], output: &mut R) -> <R as Region>::Index
Encodes a sequence of byte slices into an output byte slice.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.