Skip to main content

CodecBufferedEncoder

Struct CodecBufferedEncoder 

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

Source§

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

Source

pub const 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> 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,

Source§

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

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

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

Returns a conservative upper bound for output units.

Source§

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 reset(&mut self)

Resets hook-owned state.

§Returns

Returns unit ().

Source§

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

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>

Error reported for semantic conversion failures.
Source§

impl<C: Clone> Clone for CodecBufferedEncoder<C>

Source§

fn clone(&self) -> CodecBufferedEncoder<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 CodecBufferedEncoder<C>

Source§

impl<C: Debug> Debug for CodecBufferedEncoder<C>

Source§

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

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

impl<C: Default> Default for CodecBufferedEncoder<C>

Source§

fn default() -> CodecBufferedEncoder<C>

Returns the “default value” for a type. Read more
Source§

impl<C: Eq> Eq for CodecBufferedEncoder<C>

Source§

impl<C: Hash> Hash for CodecBufferedEncoder<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 CodecBufferedEncoder<C>

Source§

fn eq(&self, other: &CodecBufferedEncoder<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> StructuralPartialEq for CodecBufferedEncoder<C>

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<C> UnwindSafe for CodecBufferedEncoder<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.