pub trait Serialize: SchemaWrite {
// Provided methods
fn serialize(src: &Self::Src) -> WriteResult<Vec<u8>> { ... }
fn serialize_into(dst: &mut impl Writer, src: &Self::Src) -> WriteResult<()> { ... }
fn serialized_size(src: &Self::Src) -> WriteResult<u64> { ... }
}Expand description
Helper over SchemaWrite that automatically constructs a writer
and serializes a source.
§Examples
Using containers (indirect serialization):
let vec: Vec<u8> = vec![1, 2, 3];
type Src = containers::Vec<u8>;
let bytes = Src::serialize(&vec).unwrap();
let deserialized: Vec<u8> = wincode::deserialize(&bytes).unwrap();
assert_eq!(vec, deserialized);Using direct serialization (T::Src = 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 serialize(src: &Self::Src) -> WriteResult<Vec<u8>>
Available on crate feature alloc only.
fn serialize(src: &Self::Src) -> WriteResult<Vec<u8>>
alloc only.Serialize a serializable type into a Vec of bytes.
Sourcefn serialize_into(dst: &mut impl Writer, src: &Self::Src) -> WriteResult<()>
fn serialize_into(dst: &mut impl Writer, src: &Self::Src) -> WriteResult<()>
Serialize a serializable type into the given byte buffer.
Sourcefn serialized_size(src: &Self::Src) -> WriteResult<u64>
fn serialized_size(src: &Self::Src) -> WriteResult<u64>
Get the size in bytes of the type when serialized.
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.