Skip to main content

Serializable

Trait Serializable 

Source
pub trait Serializable {
    // Required methods
    fn serialize(&self, writer: &mut impl Write) -> Result<()>;
    fn serialized_size(&self) -> usize;
}
Expand description

Binary serialization with embedded versioning.

See crate::Deserializable for the deserialization counterpart.

Required Methods§

Source

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source

fn serialized_size(&self) -> usize

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementations on Foreign Types§

Source§

impl Serializable for &str

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for ()

Source§

fn serialize(&self, _writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for String

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for bool

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for i8

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for i16

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for i32

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for i64

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for i128

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for str

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for u8

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for u16

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for u32

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for u64

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl Serializable for u128

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<'a, T> Serializable for &'a T
where T: Serializable + 'a, Self: Borrow<T>,

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<'a, T> Serializable for Cow<'a, T>
where T: Serializable + ToOwned + ?Sized,

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable, I: Serializable, J: Serializable, K: Serializable, L: Serializable, M: Serializable, N: Serializable, O: Serializable, P: Serializable> Serializable for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable, I: Serializable, J: Serializable, K: Serializable, L: Serializable, M: Serializable, N: Serializable, O: Serializable> Serializable for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable, I: Serializable, J: Serializable, K: Serializable, L: Serializable, M: Serializable, N: Serializable> Serializable for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable, I: Serializable, J: Serializable, K: Serializable, L: Serializable, M: Serializable> Serializable for (A, B, C, D, E, F, G, H, I, J, K, L, M)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable, I: Serializable, J: Serializable, K: Serializable, L: Serializable> Serializable for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable, I: Serializable, J: Serializable, K: Serializable> Serializable for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable, I: Serializable, J: Serializable> Serializable for (A, B, C, D, E, F, G, H, I, J)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable, I: Serializable> Serializable for (A, B, C, D, E, F, G, H, I)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable, H: Serializable> Serializable for (A, B, C, D, E, F, G, H)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable, G: Serializable> Serializable for (A, B, C, D, E, F, G)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable, F: Serializable> Serializable for (A, B, C, D, E, F)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable, E: Serializable> Serializable for (A, B, C, D, E)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable, D: Serializable> Serializable for (A, B, C, D)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable, C: Serializable> Serializable for (A, B, C)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable, B: Serializable> Serializable for (A, B)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<A: Serializable> Serializable for (A,)

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<K: Serializable + Ord, V: Serializable> Serializable for HashMap<K, V>

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<T: ?Sized> Serializable for PhantomData<T>

Source§

fn serialize(&self, _writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<T: Serializable + Ord> Serializable for HashSet<T>

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<T: Serializable> Serializable for Arc<T>

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<T: Serializable> Serializable for Box<T>

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<T: Serializable> Serializable for Option<T>

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<T: Serializable> Serializable for Vec<T>

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Source§

impl<const N: usize> Serializable for [u8; N]

Source§

fn serialize(&self, writer: &mut impl Write) -> Result<()>

Source§

fn serialized_size(&self) -> usize

Implementors§