Encode

Trait Encode 

Source
pub trait Encode {
    // Provided methods
    fn encode_to<T: Output>(&self, dest: &mut T) { ... }
    fn encode(&self) -> Vec<u8>  { ... }
    fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R { ... }
}
Expand description

Trait that allows zero-copy write of value-references to slices in LE format. Implementations should override using_encoded for value types and encode_to for allocating types.

Provided Methods§

Source

fn encode_to<T: Output>(&self, dest: &mut T)

Convert self to a slice and append it to the destination.

Source

fn encode(&self) -> Vec<u8>

Convert self to an owned vector.

Source

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Convert self to a slice and then invoke the given closure with it.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Encode for bool

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for i8

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for i16

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for i32

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for i64

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for i128

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for isize

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for u16

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for u32

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for u64

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for u128

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for ()

Source§

fn encode_to<T: Output>(&self, _dest: &mut T)

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

fn encode(&self) -> Vec<u8>

Source§

impl Encode for usize

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 1]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 2]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 3]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 4]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 5]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 6]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 7]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 8]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 10]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 12]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 14]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 16]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 20]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 24]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 28]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 32]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 40]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 48]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 56]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 64]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 80]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 96]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 112]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8; 128]

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

impl Encode for [u8]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<'a> Encode for &'a str

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<'a, T: 'a + Encode + ?Sized> Encode for &'a T

Source§

fn encode_to<D: Output>(&self, dest: &mut D)

Source§

fn using_encoded<R, F: FnOnce(&[u8]) -> R>(&self, f: F) -> R

Source§

fn encode(&self) -> Vec<u8>

Source§

impl<A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> Encode for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> Encode for (B, C, D, E, F, G, H, I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> Encode for (C, D, E, F, G, H, I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> Encode for (D, E, F, G, H, I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> Encode for (E, F, G, H, I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> Encode for (F, G, H, I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> Encode for (G, H, I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<H: Encode, I: Encode, J: Encode, K: Encode> Encode for (H, I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<I: Encode, J: Encode, K: Encode> Encode for (I, J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<J: Encode, K: Encode> Encode for (J, K)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<K: Encode> Encode for (K,)

Source§

fn encode_to<T: Output>(&self, dest: &mut T)

Source§

impl<T> Encode for PhantomData<T>

Source§

fn encode_to<W: Output>(&self, _dest: &mut W)

Source§

impl<T: Encode> Encode for Option<T>

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 1]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 2]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 3]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 4]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 5]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 6]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 7]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 8]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 9]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 10]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 11]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 12]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 13]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 14]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 15]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 16]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 17]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 18]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 19]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 20]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 21]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 22]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 23]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 24]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 25]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 26]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 27]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 28]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 29]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 30]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 31]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 32]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 40]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 48]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 56]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 64]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 72]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 96]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 128]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 160]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 192]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 224]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T; 256]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode> Encode for [T]

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Source§

impl<T: Encode, E: Encode> Encode for Result<T, E>

Source§

fn encode_to<W: Output>(&self, dest: &mut W)

Implementors§

Source§

impl Encode for String

Available on crate features std or full only.
Source§

impl Encode for Vec<u8>

Source§

impl Encode for Compact<u8>

Source§

impl Encode for Compact<u16>

Source§

impl Encode for Compact<u32>

Source§

impl Encode for Compact<u64>

Source§

impl Encode for Compact<u128>

Source§

impl Encode for Compact<()>

Source§

impl<'a, T: ToOwned + ?Sized + 'a> Encode for Cow<'a, T>
where &'a T: Encode, <T as ToOwned>::Owned: Encode,

Available on crate features std or full only.
Source§

impl<K: Encode + Ord, V: Encode> Encode for BTreeMap<K, V>

Source§

impl<T> Encode for Compact<T>
where T: CompactAs, for<'a> CompactRef<'a, <T as CompactAs>::As>: Encode,

Source§

impl<T: Encode> Encode for Box<T>

Source§

impl<T: Encode> Encode for Vec<T>