Trait snarkvm_utilities::serialize::CanonicalSerialize [−][src]
pub trait CanonicalSerialize { fn serialize<W: Write>(
&self,
writer: &mut W
) -> Result<(), SerializationError>; fn serialized_size(&self) -> usize; fn serialize_uncompressed<W: Write>(
&self,
writer: &mut W
) -> Result<(), SerializationError> { ... } fn uncompressed_size(&self) -> usize { ... } }
Expand description
Serializer in little endian format.
This trait can be derived if all fields of a struct implement
CanonicalSerialize
and the derive
feature is enabled.
Example
// The `derive` feature must be set for the derivation to work. use snarkvm_utilities::serialize::*; use snarkvm_utilities::errors::SerializationError; #[derive(CanonicalSerialize)] struct TestStruct { a: u64, b: (u64, (u64, u64)), }
If your code depends on algebra
instead, the example works analogously
when importing algebra::serialize::*
.
Required methods
Serializes self
into writer
.
fn serialized_size(&self) -> usize
Provided methods
fn serialize_uncompressed<W: Write>(
&self,
writer: &mut W
) -> Result<(), SerializationError>
fn serialize_uncompressed<W: Write>(
&self,
writer: &mut W
) -> Result<(), SerializationError>
Serializes self
into writer
without compression.
fn uncompressed_size(&self) -> usize
Implementations on Foreign Types
impl<A, B, C> CanonicalSerialize for (A, B, C) where
A: CanonicalSerialize,
B: CanonicalSerialize,
C: CanonicalSerialize,
impl<A, B, C> CanonicalSerialize for (A, B, C) where
A: CanonicalSerialize,
B: CanonicalSerialize,
C: CanonicalSerialize,
impl<A, B, C, D> CanonicalSerialize for (A, B, C, D) where
A: CanonicalSerialize,
B: CanonicalSerialize,
C: CanonicalSerialize,
D: CanonicalSerialize,
impl<A, B, C, D> CanonicalSerialize for (A, B, C, D) where
A: CanonicalSerialize,
B: CanonicalSerialize,
C: CanonicalSerialize,
D: CanonicalSerialize,
impl<K, V> CanonicalSerialize for BTreeMap<K, V> where
K: CanonicalSerialize,
V: CanonicalSerialize,
impl<K, V> CanonicalSerialize for BTreeMap<K, V> where
K: CanonicalSerialize,
V: CanonicalSerialize,