pub struct CodecValueEncoder<C> { /* private fields */ }Expand description
Encodes one borrowed value into owned units by using a Codec.
CodecValueEncoder is the default bridge from the low-level unchecked
Codec contract to the convenience-layer ValueEncoder contract. Each
call emits stream-start output through Codec::encode_reset, then encodes
one value through Codec::encode, and returns the owned output truncated
to the units actually written.
§Type Parameters
C: Low-level codec used to encode one value.
Implementations§
Source§impl<C> CodecValueEncoder<C>where
C: Codec,
impl<C> CodecValueEncoder<C>where
C: Codec,
Sourcepub fn new(codec: C) -> Self
pub fn new(codec: C) -> Self
Creates an encoder backed by codec.
§Parameters
codec: Low-level codec used to encode one value.
§Returns
Returns a value encoder adapter for the supplied codec.
§Panics
In debug builds, panics when the supplied codec violates the
Codec::MIN_UNITS_PER_VALUE / Codec::MAX_UNITS_PER_VALUE ordering
invariant. Release builds skip this check because the invariant is the
responsibility of the Codec implementation.
Trait Implementations§
Source§impl<C: Debug> Debug for CodecValueEncoder<C>
impl<C: Debug> Debug for CodecValueEncoder<C>
Source§impl<C: Default> Default for CodecValueEncoder<C>
impl<C: Default> Default for CodecValueEncoder<C>
Source§fn default() -> CodecValueEncoder<C>
fn default() -> CodecValueEncoder<C>
Source§impl<C> ValueEncoder<<C as Codec>::Value> for CodecValueEncoder<C>
impl<C> ValueEncoder<<C as Codec>::Value> for CodecValueEncoder<C>
Source§fn encode(&mut self, input: &C::Value) -> Result<Self::Output, Self::Error>
fn encode(&mut self, input: &C::Value) -> Result<Self::Output, Self::Error>
Encodes one borrowed value into owned units.
§Parameters
input: Value to encode.
§Returns
Returns stream-start output followed by the units written for input.
§Errors
Returns the wrapped codec’s encode error when reset output or input
cannot be represented.
§Panics
Panics when the wrapped codec reports more reset output than
Codec::MAX_ENCODE_RESET_UNITS or a value width different from
Codec::encode_len.