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)), }
Required methods
Serializes self into writer.
fn serialized_size(&self) -> usizeProvided 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) -> usizeImplementations 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, Serializes a BTreeMap as len(map) || key 1 || value 1 || ... || key n || value n.