Deserialize

Trait Deserialize 

Source
pub trait Deserialize<'de>: SchemaRead<'de> {
    // Provided methods
    fn deserialize(src: &'de [u8]) -> ReadResult<Self::Dst> { ... }
    fn deserialize_into(
        src: &'de [u8],
        dst: &mut MaybeUninit<Self::Dst>,
    ) -> ReadResult<()> { ... }
}
Expand description

Helper over SchemaRead that automatically constructs a reader and initializes a destination.

§Examples

Using containers (indirect deserialization):

let vec: Vec<u8> = vec![1, 2, 3];
let bytes = wincode::serialize(&vec).unwrap();
type Dst = containers::Vec<u8>;
let deserialized = Dst::deserialize(&bytes).unwrap();
assert_eq!(vec, deserialized);

Using direct deserialization (T::Dst = T):

let vec: Vec<u8> = vec![1, 2, 3];
let bytes = wincode::serialize(&vec).unwrap();
let deserialized: Vec<u8> = wincode::deserialize(&bytes).unwrap();
assert_eq!(vec, deserialized);

Provided Methods§

Source

fn deserialize(src: &'de [u8]) -> ReadResult<Self::Dst>

Deserialize bytes into a new Self::Dst.

Source

fn deserialize_into( src: &'de [u8], dst: &mut MaybeUninit<Self::Dst>, ) -> ReadResult<()>

Deserialize bytes into target.

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.

Implementors§

Source§

impl<'de, T> Deserialize<'de> for T
where T: SchemaRead<'de>,