Trait Encode

Source
pub trait Encode {
    // Required method
    fn encode<const CONFIG: u16>(
        &self,
        _: &mut (impl Write + ?Sized),
    ) -> Result<()>;

    // Provided method
    fn to_bytes<const CONFIG: u16>(&self) -> Vec<u8>  { ... }
}
Expand description

This trait used to serialize the data structure into binary format.

Required Methods§

Source

fn encode<const CONFIG: u16>(&self, _: &mut (impl Write + ?Sized)) -> Result<()>

Serialize the data into binary format.

Provided Methods§

Source

fn to_bytes<const CONFIG: u16>(&self) -> Vec<u8>

This is a convenient method used to encode a value into binary data and return it as a Vec.

§Example
use databuf::{Encode, config::num::LE};

#[derive(Encode)]
struct FooBar {
    foo: u8,
    bar: [u8; 2],
}
let bytes = FooBar { foo: 1, bar: [2, 3] }.to_bytes::<LE>();
assert_eq!(bytes, vec![1, 2, 3]);

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 encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for char

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl Encode for f32

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for f64

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for i8

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for i16

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for i32

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for i64

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for i128

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for isize

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for str

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl Encode for u8

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for u16

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for u32

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for u64

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for u128

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for ()

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for usize

Source§

fn encode<const CONFIG: u16>( &self, writer: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl Encode for String

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

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

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

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

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<K: Encode, V: Encode, S> Encode for HashMap<K, V, S>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

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

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T> Encode for (T,)
where T: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T> Encode for PhantomData<T>

Source§

fn encode<const CONFIG: u16>(&self, _: &mut (impl Write + ?Sized)) -> Result<()>

Source§

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

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T, T1> Encode for (T, T1)
where T: Encode, T1: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2> Encode for (T, T1, T2)
where T: Encode, T1: Encode, T2: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3> Encode for (T, T1, T2, T3)
where T: Encode, T1: Encode, T2: Encode, T3: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4> Encode for (T, T1, T2, T3, T4)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5> Encode for (T, T1, T2, T3, T4, T5)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6> Encode for (T, T1, T2, T3, T4, T5, T6)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7> Encode for (T, T1, T2, T3, T4, T5, T6, T7)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8> Encode for (T, T1, T2, T3, T4, T5, T6, T7, T8)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9> Encode for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Encode for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Encode for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Encode for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode, T12: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Encode for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode, T12: Encode, T13: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Encode for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode, T12: Encode, T13: Encode, T14: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Encode for (T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where T: Encode, T1: Encode, T2: Encode, T3: Encode, T4: Encode, T5: Encode, T6: Encode, T7: Encode, T8: Encode, T9: Encode, T10: Encode, T11: Encode, T12: Encode, T13: Encode, T14: Encode, T15: Encode,

Source§

fn encode<const CONFIG: u16>( &self, _c: &mut (impl Write + ?Sized), ) -> Result<()>

Source§

impl<T, const N: usize> Encode for [T; N]
where T: Encode,

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode + Copy> Encode for Cell<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode + ?Sized> Encode for &T

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode + ?Sized> Encode for &mut T

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode + ?Sized> Encode for Box<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode + ?Sized> Encode for Rc<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode + ?Sized> Encode for Arc<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode> Encode for [T]

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode> Encode for BinaryHeap<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode> Encode for BTreeSet<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode> Encode for LinkedList<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode> Encode for VecDeque<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

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

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode> Encode for RefCell<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode> Encode for Range<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode> Encode for RangeInclusive<T>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Source§

impl<T: Encode, S> Encode for HashSet<T, S>

Source§

fn encode<const CONFIG: u16>(&self, c: &mut (impl Write + ?Sized)) -> Result<()>

Implementors§