pub struct CodecBufferedEncoder<C> { /* private fields */ }Expand description
Encodes values into caller-provided output units by using a Codec.
CodecBufferedEncoder is the default bridge from the low-level unchecked
Codec contract to the buffered BufferedTranscoder and BufferedEncoder
contracts. It encodes complete values only; when the remaining output
capacity is smaller than codec.max_units_per_value(), it stops before
consuming the next input value and reports crate::TranscodeStatus::NeedOutput.
§Type Parameters
C: Low-level codec used to encode values.
Implementations§
Trait Implementations§
impl<C> BufferedEncoder<<C as Codec>::Value, <C as Codec>::Unit> for CodecBufferedEncoder<C>where
C: Codec,
Source§impl<C> BufferedTranscoder<<C as Codec>::Value, <C as Codec>::Unit> for CodecBufferedEncoder<C>where
C: Codec,
impl<C> BufferedTranscoder<<C as Codec>::Value, <C as Codec>::Unit> for CodecBufferedEncoder<C>where
C: Codec,
Source§fn max_output_len(&self, input_len: usize) -> Result<usize, CapacityError>
fn max_output_len(&self, input_len: usize) -> Result<usize, CapacityError>
Source§fn max_finish_output_len(&self) -> Result<usize, CapacityError>
fn max_finish_output_len(&self) -> Result<usize, CapacityError>
Returns the maximum units emitted by finishing internal state.
§Returns
Returns the number of units that may be emitted by finishing state.
Source§fn transcode(
&mut self,
input: &[C::Value],
input_index: usize,
output: &mut [C::Unit],
output_index: usize,
) -> Result<TranscodeProgress, Self::Error>
fn transcode( &mut self, input: &[C::Value], input_index: usize, output: &mut [C::Unit], output_index: usize, ) -> Result<TranscodeProgress, Self::Error>
Encodes values into the supplied output buffer.
§Parameters
input: Input value slice.input_index: Absolute input index where encoding starts.output: Destination unit slice.output_index: Absolute output index where writing starts.
§Returns
Returns conversion progress for consumed input and produced output units.
§Errors
Returns an encode error when indices are invalid or when encoding cannot continue under current policy.
Source§fn finish(
&mut self,
output: &mut [C::Unit],
output_index: usize,
) -> Result<usize, FinishError<Self::Error>>
fn finish( &mut self, output: &mut [C::Unit], output_index: usize, ) -> Result<usize, FinishError<Self::Error>>
Finishes internally retained output after EOF.
§Parameters
output: Destination unit slice for finalization output.output_index: Absolute output index where writing starts.
§Returns
Returns the number of units written by finalization.
§Errors
Returns a finish error if retained output cannot be fully emitted.
Source§type Error = CodecEncodeError<<C as Codec>::EncodeError>
type Error = CodecEncodeError<<C as Codec>::EncodeError>
Source§impl<C: Clone> Clone for CodecBufferedEncoder<C>
impl<C: Clone> Clone for CodecBufferedEncoder<C>
Source§fn clone(&self) -> CodecBufferedEncoder<C>
fn clone(&self) -> CodecBufferedEncoder<C>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<C: Copy> Copy for CodecBufferedEncoder<C>
Source§impl<C: Debug> Debug for CodecBufferedEncoder<C>
impl<C: Debug> Debug for CodecBufferedEncoder<C>
Source§impl<C: Default> Default for CodecBufferedEncoder<C>
impl<C: Default> Default for CodecBufferedEncoder<C>
Source§fn default() -> CodecBufferedEncoder<C>
fn default() -> CodecBufferedEncoder<C>
impl<C: Eq> Eq for CodecBufferedEncoder<C>
Source§impl<C: Hash> Hash for CodecBufferedEncoder<C>
impl<C: Hash> Hash for CodecBufferedEncoder<C>
Source§impl<C: PartialEq> PartialEq for CodecBufferedEncoder<C>
impl<C: PartialEq> PartialEq for CodecBufferedEncoder<C>
Source§fn eq(&self, other: &CodecBufferedEncoder<C>) -> bool
fn eq(&self, other: &CodecBufferedEncoder<C>) -> bool
self and other values to be equal, and is used by ==.