Skip to main content

CodecTranscodeEncoder

Struct CodecTranscodeEncoder 

Source
pub struct CodecTranscodeEncoder<C> { /* private fields */ }
Expand description

Encodes values into caller-provided output units by using a Codec.

CodecTranscodeEncoder is the default bridge from the low-level unchecked Codec contract to the buffered Transcoder and TranscodeEncoder contracts. It encodes complete values only; when the remaining output capacity is smaller than codec.encode_len(value), it stops before consuming that input value and reports crate::TranscodeStatus::NeedOutput.

§Type Parameters

  • C: Low-level codec used to encode values.

Implementations§

Source§

impl<C> CodecTranscodeEncoder<C>
where C: Codec,

Source

pub fn new(codec: C) -> Self

Creates a buffered encoder backed by codec.

§Parameters
  • codec: Low-level codec used to encode values.
§Returns

Returns a buffered encoder adapter for the supplied codec.

Source

pub fn codec(&self) -> &C

Returns a shared reference to the wrapped codec.

Source

pub fn codec_mut(&mut self) -> &mut C

Returns a mutable reference to the wrapped codec.

Mutating a codec during an active stream can invalidate that stream’s assumptions; reset the adapter before continuing with the new codec configuration.

Source

pub fn into_codec(self) -> C

Consumes the adapter and returns its wrapped codec.

Any buffered lifecycle state and internal hooks are discarded.

Trait Implementations§

Source§

impl<C: Debug> Debug for CodecTranscodeEncoder<C>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<C> Default for CodecTranscodeEncoder<C>
where C: Codec + Default,

Source§

fn default() -> Self

Creates a default codec-backed buffered encoder.

§Returns

Returns an encoder backed by C::default().

Source§

impl<C> TranscodeEncoder for CodecTranscodeEncoder<C>
where C: Codec,

Source§

type EncodeError = <C as Codec>::EncodeError

Domain error type produced by encode internals.
Source§

impl<C> Transcoder for CodecTranscodeEncoder<C>
where C: Codec,

Source§

fn max_transcode_output_len( &self, input_len: usize, ) -> Result<usize, CapacityError>

Gets the maximum number of output units needed for input_len values.

§Parameters
  • input_len: Logical input values the caller plans to encode.
§Returns

a conservative upper bound for output units.

Source§

fn max_reset_output_len(&self) -> Result<usize, CapacityError>

Gets the global maximum units emitted when resetting internal state.

§Returns

the maximum units emitted when resetting internal state.

Source§

fn max_finish_output_len(&self) -> Result<usize, CapacityError>

Gets the global maximum units emitted by finishing internal state.

§Returns

the number of units that may be emitted by finishing state.

Source§

fn reset( &mut self, output: &mut [C::Unit], output_index: usize, ) -> Result<usize, TranscodeEncodeErrorOf<C>>

Runs before-reset cleanup and emits stream-start output.

Source§

fn transcode( &mut self, input: &[C::Value], input_index: usize, output: &mut [C::Unit], output_index: usize, ) -> Result<TranscodeProgress, TranscodeEncodeErrorOf<C>>

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, TranscodeEncodeErrorOf<C>>

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 Input = <C as Codec>::Value

Input unit type accepted by this transcoder.
Source§

type Output = <C as Codec>::Unit

Output unit type produced by this transcoder.
Source§

type Error = TranscodeEncodeError<<C as Codec>::EncodeError, <C as Codec>::Value>

Complete error type produced by this transcoder.
Source§

fn max_total_output_len(&self, input_len: usize) -> Result<usize, CapacityError>

Returns an upper bound for a complete reset -> transcode -> finish stream. Read more
Source§

fn transcode_eof( &mut self, input: &[Self::Input], input_index: usize, output: &mut [Self::Output], output_index: usize, ) -> Result<TranscodeProgress, Self::Error>

Converts source units after the caller has established end of input. Read more
Source§

fn transcode_complete_into( &mut self, input: &[Self::Input], output: &mut [Self::Output], ) -> Result<usize, Self::Error>

Runs a complete one-shot reset -> transcode -> finish stream. Read more

Auto Trait Implementations§

§

impl<C> Freeze for CodecTranscodeEncoder<C>
where C: Freeze,

§

impl<C> RefUnwindSafe for CodecTranscodeEncoder<C>
where C: RefUnwindSafe,

§

impl<C> Send for CodecTranscodeEncoder<C>
where C: Send,

§

impl<C> Sync for CodecTranscodeEncoder<C>
where C: Sync,

§

impl<C> Unpin for CodecTranscodeEncoder<C>
where C: Unpin,

§

impl<C> UnsafeUnpin for CodecTranscodeEncoder<C>
where C: UnsafeUnpin,

§

impl<C> UnwindSafe for CodecTranscodeEncoder<C>
where C: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.