Skip to main content

Deserialize

Trait Deserialize 

Source
pub trait Deserialize<'de>: SchemaRead<'de, DefaultConfig> {
    // 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, BincodeLen>;
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 the input src bytes into a new Self::Dst.

Source

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

Deserialize the input src bytes into dst.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

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