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", so this trait is not object safe.

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 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 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<'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, 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: Serializable> Serializable for (A,)

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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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<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: 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 Option<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 Arc<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<T: ?Sized> Serializable for PhantomData<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§