Trait sucds::serial::Serializable
source · pub trait Serializable: Sized {
// Required methods
fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>;
fn deserialize_from<R: Read>(reader: R) -> Result<Self>;
fn size_in_bytes(&self) -> usize;
// Provided method
fn size_of() -> Option<usize> { ... }
}
Expand description
Trait to serialize/deserialize data structures.
Examples
use sucds::{bit_vectors::BitVector, Serializable};
let bv = BitVector::from_bits([true, false, false, true]);
let mut bytes = vec![];
let size = bv.serialize_into(&mut bytes)?;
let other = BitVector::deserialize_from(&bytes[..])?;
assert_eq!(bv, other);
assert_eq!(size, bytes.len());
assert_eq!(size, bv.size_in_bytes());
Required Methods§
sourcefn serialize_into<W: Write>(&self, writer: W) -> Result<usize>
fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>
sourcefn deserialize_from<R: Read>(reader: R) -> Result<Self>
fn deserialize_from<R: Read>(reader: R) -> Result<Self>
sourcefn size_in_bytes(&self) -> usize
fn size_in_bytes(&self) -> usize
Returns the number of bytes to serialize the data structure.
Provided Methods§
Object Safety§
This trait is not object safe.