Skip to main content

CodecValueEncoder

Struct CodecValueEncoder 

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

Encodes one borrowed value into owned units by using a Codec.

CodecValueEncoder is the default bridge from the low-level unchecked Codec contract to the convenience-layer ValueEncoder contract. Each call emits stream-start output through Codec::encode_reset, then encodes one value through Codec::encode, and returns the owned output truncated to the units actually written.

§Type Parameters

  • C: Low-level codec used to encode one value.

Implementations§

Source§

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

Source

pub fn new(codec: C) -> Self

Creates an encoder backed by codec.

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

Returns a value encoder adapter for the supplied codec.

§Panics

In debug builds, panics when the supplied codec violates the Codec::MIN_UNITS_PER_VALUE / Codec::MAX_UNITS_PER_VALUE ordering invariant. Release builds skip this check because the invariant is the responsibility of the Codec implementation.

Trait Implementations§

Source§

impl<C: Debug> Debug for CodecValueEncoder<C>

Source§

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

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

impl<C: Default> Default for CodecValueEncoder<C>

Source§

fn default() -> CodecValueEncoder<C>

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

impl<C> ValueEncoder<<C as Codec>::Value> for CodecValueEncoder<C>
where C: Codec, C::Unit: Default,

Source§

fn encode(&mut self, input: &C::Value) -> Result<Self::Output, Self::Error>

Encodes one borrowed value into owned units.

§Parameters
  • input: Value to encode.
§Returns

Returns stream-start output followed by the units written for input.

§Errors

Returns the wrapped codec’s encode error when reset output or input cannot be represented.

§Panics

Panics when the wrapped codec reports more reset output than Codec::MAX_ENCODE_RESET_UNITS or a value width different from Codec::encode_len.

Source§

type Output = Vec<<C as Codec>::Unit>

Encoded output type.
Source§

type Error = TranscodeError<CodecEncodeError<<C as Codec>::EncodeError>>

Encoding error type.

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

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

§

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