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 { ... } }

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_errors::serialization::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

fn serialize<W: Write>(&self, writer: &mut W) -> Result<(), SerializationError>[src]

Serializes self into writer.

fn serialized_size(&self) -> usize[src]

Loading content...

Provided methods

fn serialize_uncompressed<W: Write>(
    &self,
    writer: &mut W
) -> Result<(), SerializationError>
[src]

Serializes self into writer without compression.

fn uncompressed_size(&self) -> usize[src]

Loading content...

Implementations on Foreign Types

impl CanonicalSerialize for bool[src]

impl CanonicalSerialize for String[src]

impl CanonicalSerialize for u8[src]

impl CanonicalSerialize for u16[src]

impl CanonicalSerialize for u32[src]

impl CanonicalSerialize for u64[src]

impl CanonicalSerialize for usize[src]

impl<T: CanonicalSerialize> CanonicalSerialize for Option<T>[src]

impl<T> CanonicalSerialize for PhantomData<T>[src]

impl<'a, T: CanonicalSerialize + ToOwned> CanonicalSerialize for Cow<'a, T>[src]

impl<T: CanonicalSerialize> CanonicalSerialize for [T][src]

impl<'a, T: CanonicalSerialize> CanonicalSerialize for &'a [T][src]

impl<A, B> CanonicalSerialize for (A, B) where
    A: CanonicalSerialize,
    B: CanonicalSerialize
[src]

impl<A, B, C> CanonicalSerialize for (A, B, C) where
    A: CanonicalSerialize,
    B: CanonicalSerialize,
    C: CanonicalSerialize
[src]

impl<A, B, C, D> CanonicalSerialize for (A, B, C, D) where
    A: CanonicalSerialize,
    B: CanonicalSerialize,
    C: CanonicalSerialize,
    D: CanonicalSerialize
[src]

impl<K, V> CanonicalSerialize for BTreeMap<K, V> where
    K: CanonicalSerialize,
    V: CanonicalSerialize
[src]

Loading content...

Implementors

impl<T: CanonicalSerialize> CanonicalSerialize for Vec<T>[src]

Loading content...