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: Clone> Clone for CodecTranscodeEncoder<C>

Source§

fn clone(&self) -> CodecTranscodeEncoder<C>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<C: Copy> Copy for CodecTranscodeEncoder<C>

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: Eq> Eq for CodecTranscodeEncoder<C>

Source§

impl<C: Hash> Hash for CodecTranscodeEncoder<C>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<C: PartialEq> PartialEq for CodecTranscodeEncoder<C>

Source§

fn eq(&self, other: &CodecTranscodeEncoder<C>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<C: PartialEq> StructuralPartialEq for CodecTranscodeEncoder<C>

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

Resets hook-owned state 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.