pub trait CanonicalDeserialize: Sized {
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>;
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError> { ... }
}
Expand description
Deserializer in little endian format.
This trait can be derived if all fields of a struct implement
CanonicalDeserialize
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(CanonicalDeserialize)]
struct TestStruct {
a: u64,
b: (u64, (u64, u64)),
}
Required methods
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
Reads Self
from reader
.
Provided methods
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
Reads Self
from reader
without compression.
Implementations on Foreign Types
sourceimpl CanonicalDeserialize for bool
impl CanonicalDeserialize for bool
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
sourceimpl CanonicalDeserialize for String
impl CanonicalDeserialize for String
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
sourceimpl CanonicalDeserialize for u8
impl CanonicalDeserialize for u8
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
sourceimpl CanonicalDeserialize for u16
impl CanonicalDeserialize for u16
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
sourceimpl CanonicalDeserialize for u32
impl CanonicalDeserialize for u32
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
sourceimpl CanonicalDeserialize for u64
impl CanonicalDeserialize for u64
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
sourceimpl CanonicalDeserialize for usize
impl CanonicalDeserialize for usize
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
sourceimpl<T: CanonicalDeserialize> CanonicalDeserialize for Option<T>
impl<T: CanonicalDeserialize> CanonicalDeserialize for Option<T>
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
sourceimpl<T> CanonicalDeserialize for PhantomData<T>
impl<T> CanonicalDeserialize for PhantomData<T>
fn deserialize<R: Read>(_reader: &mut R) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
_reader: &mut R
) -> Result<Self, SerializationError>
sourceimpl<T: CanonicalDeserialize + ToOwned> CanonicalDeserialize for Rc<T>
impl<T: CanonicalDeserialize + ToOwned> CanonicalDeserialize for Rc<T>
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
sourceimpl<T: CanonicalDeserialize + ToOwned> CanonicalDeserialize for Arc<T>
impl<T: CanonicalDeserialize + ToOwned> CanonicalDeserialize for Arc<T>
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
sourceimpl<'a, T> CanonicalDeserialize for Cow<'a, T> where
T: ToOwned,
<T as ToOwned>::Owned: CanonicalDeserialize,
impl<'a, T> CanonicalDeserialize for Cow<'a, T> where
T: ToOwned,
<T as ToOwned>::Owned: CanonicalDeserialize,
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
sourceimpl<A, B> CanonicalDeserialize for (A, B) where
A: CanonicalDeserialize,
B: CanonicalDeserialize,
impl<A, B> CanonicalDeserialize for (A, B) where
A: CanonicalDeserialize,
B: CanonicalDeserialize,
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
sourceimpl<A, B, C> CanonicalDeserialize for (A, B, C) where
A: CanonicalDeserialize,
B: CanonicalDeserialize,
C: CanonicalDeserialize,
impl<A, B, C> CanonicalDeserialize for (A, B, C) where
A: CanonicalDeserialize,
B: CanonicalDeserialize,
C: CanonicalDeserialize,
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
sourceimpl<A, B, C, D> CanonicalDeserialize for (A, B, C, D) where
A: CanonicalDeserialize,
B: CanonicalDeserialize,
C: CanonicalDeserialize,
D: CanonicalDeserialize,
impl<A, B, C, D> CanonicalDeserialize for (A, B, C, D) where
A: CanonicalDeserialize,
B: CanonicalDeserialize,
C: CanonicalDeserialize,
D: CanonicalDeserialize,
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: &mut R
) -> Result<Self, SerializationError>
sourceimpl<K, V> CanonicalDeserialize for BTreeMap<K, V> where
K: Ord + CanonicalDeserialize,
V: CanonicalDeserialize,
impl<K, V> CanonicalDeserialize for BTreeMap<K, V> where
K: Ord + CanonicalDeserialize,
V: CanonicalDeserialize,
sourcefn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
fn deserialize<R: Read>(reader: &mut R) -> Result<Self, SerializationError>
Deserializes a BTreeMap
from len(map) || key 1 || value 1 || ... || key n || value n
.