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.

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<<C as Codec>::Value, <C as Codec>::Unit> for CodecTranscodeEncoder<C>
where C: Codec,

Source§

impl<C> Transcoder<<C as Codec>::Value, <C as Codec>::Unit> for CodecTranscodeEncoder<C>
where C: Codec,

Source§

fn max_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 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 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, TranscodeError<Self::Error>>

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, TranscodeError<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, TranscodeError<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>

Domain error reported by semantic conversion failures.

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.