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. It allocates codec.max_units_per_value() output units, calls Codec::encode_unchecked with the borrowed value, then truncates the owned output to the number of units actually written.

§Type Parameters

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

Implementations§

Source§

impl<C> CodecValueEncoder<C>

Source

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

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> StructuralPartialEq for CodecValueEncoder<C>

Source§

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

Source§

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

Encodes one borrowed value into owned units.

§Parameters
  • input: Value to encode.
§Returns

Returns the units written by the wrapped codec.

§Errors

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

§Panics

Panics when the wrapped codec reports more written units than its declared Codec::max_units_per_value bound.

Source§

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

Encoded output type.
Source§

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