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

Panics when the supplied codec violates the Codec::min_units_per_value / Codec::max_units_per_value ordering invariant. Validating once at construction lets the hot encode path skip the check.

Trait Implementations§

Source§

impl<C: Clone> Clone for CodecValueEncoder<C>

Source§

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

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

Source§

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

Source§

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

Source§

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

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