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§

source

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

Serializes the data structure into the writer, returning the number of serialized bytes.

Arguments
  • writer: Write variable.
source

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

Deserializes the data structure from the reader.

Arguments
  • reader: Read variable.
source

fn size_in_bytes(&self) -> usize

Returns the number of bytes to serialize the data structure.

Provided Methods§

source

fn size_of() -> Option<usize>

Returns the size of a primitive type in bytes (if the type is so).

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Serializable for bool

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for i8

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for i16

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for i32

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for i64

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for isize

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for u8

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for u16

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for u32

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for u64

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl Serializable for usize

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

fn size_of() -> Option<usize>

source§

impl<S> Serializable for Option<S>where S: Serializable,

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

source§

impl<S> Serializable for Vec<S>where S: Serializable,

source§

fn serialize_into<W: Write>(&self, writer: W) -> Result<usize>

source§

fn deserialize_from<R: Read>(reader: R) -> Result<Self>

source§

fn size_in_bytes(&self) -> usize

Implementors§