pub struct CodecTranscodeDecoder<C> { /* private fields */ }Expand description
Decodes encoded units into caller-provided value buffers by using a
Codec.
CodecTranscodeDecoder is a policy-free bridge from the low-level unchecked
Codec contract to Transcoder and TranscodeDecoder. It
leaves incomplete input tails in the caller-provided input slice; callers
own input-buffer refill and EOF incomplete-tail policy.
Because Transcoder::finish receives no source input, this adapter is
intended for codecs whose decode boundary is locally decidable from the
visible prefix plus codec state. Formats that require EOF-aware
maximal-munch parsing or need to reinterpret a pending prefix at EOF should
provide a custom streaming decoder or a value-level facade.
§Type Parameters
C: Low-level codec used to decode values.
Implementations§
Trait Implementations§
Source§impl<C: Debug> Debug for CodecTranscodeDecoder<C>
impl<C: Debug> Debug for CodecTranscodeDecoder<C>
Source§impl<C: Default> Default for CodecTranscodeDecoder<C>
impl<C: Default> Default for CodecTranscodeDecoder<C>
Source§fn default() -> CodecTranscodeDecoder<C>
fn default() -> CodecTranscodeDecoder<C>
impl<C> TranscodeDecoder<<C as Codec>::Unit, <C as Codec>::Value> for CodecTranscodeDecoder<C>where
C: Codec,
Source§impl<C> Transcoder<<C as Codec>::Unit, <C as Codec>::Value> for CodecTranscodeDecoder<C>where
C: Codec,
impl<C> Transcoder<<C as Codec>::Unit, <C as Codec>::Value> for CodecTranscodeDecoder<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 values emitted by finishing internal state.
§Returns
Returns the number of values that may still be emitted by finishing state.
Source§fn max_reset_output_len(&self) -> Result<usize, CapacityError>
fn max_reset_output_len(&self) -> Result<usize, CapacityError>
Returns the maximum values emitted when resetting internal state.
Source§fn reset(
&mut self,
output: &mut [C::Value],
output_index: usize,
) -> Result<usize, TranscodeError<Self::Error>>
fn reset( &mut self, output: &mut [C::Value], output_index: usize, ) -> Result<usize, TranscodeError<Self::Error>>
Runs before-reset cleanup for decoder state.
Source§fn transcode(
&mut self,
input: &[C::Unit],
input_index: usize,
output: &mut [C::Value],
output_index: usize,
) -> Result<TranscodeProgress, TranscodeError<Self::Error>>
fn transcode( &mut self, input: &[C::Unit], input_index: usize, output: &mut [C::Value], output_index: usize, ) -> Result<TranscodeProgress, TranscodeError<Self::Error>>
Decodes source units into logical values.
§Parameters
input: Source unit slice.input_index: Absolute source index where decoding starts.output: Destination value slice.output_index: Absolute output value index where writing starts.
§Returns
Returns conversion progress for consumed and written counters.
§Errors
Returns a decode error when indices are invalid or when conversion fails under hook policy.
Source§fn finish(
&mut self,
output: &mut [C::Value],
output_index: usize,
) -> Result<usize, TranscodeError<Self::Error>>
fn finish( &mut self, output: &mut [C::Value], output_index: usize, ) -> Result<usize, TranscodeError<Self::Error>>
Finishes internally retained output after EOF.
§Parameters
output: Destination value slice for final retained values.output_index: Absolute output value index where writing starts.
§Returns
Returns the number of values written by finalization.
§Errors
Returns a finish error if finalization cannot complete.