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§
Sourcefn deserialize(src: &'de [u8]) -> ReadResult<Self::Dst>
fn deserialize(src: &'de [u8]) -> ReadResult<Self::Dst>
Deserialize bytes into a new Self::Dst.
Sourcefn deserialize_into(
src: &'de [u8],
dst: &mut MaybeUninit<Self::Dst>,
) -> ReadResult<()>
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.