pub trait CanonicalDeserialize: Valid + Sized {
// Required method
fn deserialize_with_mode<R: Read>(
reader: R,
compress: Compress,
validate: Validate,
) -> Result<Self, SerializationError>;
// Provided methods
fn deserialize_compressed<R: Read>(
reader: R,
) -> Result<Self, SerializationError> { ... }
fn deserialize_compressed_unchecked<R: Read>(
reader: R,
) -> Result<Self, SerializationError> { ... }
fn deserialize_uncompressed<R: Read>(
reader: R,
) -> Result<Self, SerializationError> { ... }
fn deserialize_uncompressed_unchecked<R: Read>(
reader: 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 ark_serialize::*;
#[derive(CanonicalDeserialize)]
struct TestStruct {
a: u64,
b: (u64, (u64, u64)),
}Required Methods§
Sourcefn deserialize_with_mode<R: Read>(
reader: R,
compress: Compress,
validate: Validate,
) -> Result<Self, SerializationError>
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
The general deserialize method that takes in customization flags.
Provided Methods§
Sourcefn deserialize_compressed<R: Read>(
reader: R,
) -> Result<Self, SerializationError>
fn deserialize_compressed<R: Read>( reader: R, ) -> Result<Self, SerializationError>
Reads Self from reader using the compressed form if applicable.
Performs validation if applicable.
Sourcefn deserialize_compressed_unchecked<R: Read>(
reader: R,
) -> Result<Self, SerializationError>
fn deserialize_compressed_unchecked<R: Read>( reader: R, ) -> Result<Self, SerializationError>
Reads Self from reader using the compressed form if applicable, without validating the
deserialized value.
§Note
This should be used with caution, as it may lead to invalid values being used in subsequent computations, which may have security implications depending on the context.
It should only be used when the caller can guarantee that the input is valid, e.g. if it was generated by a trusted source.
Sourcefn deserialize_uncompressed<R: Read>(
reader: R,
) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>( reader: R, ) -> Result<Self, SerializationError>
Reads Self from reader using the uncompressed form. Performs validation if applicable.
Sourcefn deserialize_uncompressed_unchecked<R: Read>(
reader: R,
) -> Result<Self, SerializationError>
fn deserialize_uncompressed_unchecked<R: Read>( reader: R, ) -> Result<Self, SerializationError>
Reads Self from reader using the uncompressed form, without validating the deserialized
value.
§Note
This should be used with caution, as it may lead to invalid values being used in subsequent computations, which may have security implications depending on the context.
It should only be used when the caller can guarantee that the input is valid, e.g. if it was generated by a trusted source.
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 CanonicalDeserialize for bool
impl CanonicalDeserialize for bool
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for i8
impl CanonicalDeserialize for i8
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for i16
impl CanonicalDeserialize for i16
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for i32
impl CanonicalDeserialize for i32
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for i64
impl CanonicalDeserialize for i64
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for isize
impl CanonicalDeserialize for isize
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for u8
impl CanonicalDeserialize for u8
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for u16
impl CanonicalDeserialize for u16
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for u32
impl CanonicalDeserialize for u32
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for u64
impl CanonicalDeserialize for u64
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for ()
impl CanonicalDeserialize for ()
fn deserialize_with_mode<R: Read>( _reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for usize
impl CanonicalDeserialize for usize
fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for BigUint
impl CanonicalDeserialize for BigUint
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl CanonicalDeserialize for String
impl CanonicalDeserialize for String
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<A> CanonicalDeserialize for (A,)where
A: CanonicalDeserialize,
impl<A> CanonicalDeserialize for (A,)where
A: CanonicalDeserialize,
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<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_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<A, B, C> CanonicalDeserialize for (A, B, C)
impl<A, B, C> CanonicalDeserialize for (A, B, C)
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<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_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<A, B, C, D, E> CanonicalDeserialize for (A, B, C, D, E)where
A: CanonicalDeserialize,
B: CanonicalDeserialize,
C: CanonicalDeserialize,
D: CanonicalDeserialize,
E: CanonicalDeserialize,
impl<A, B, C, D, E> CanonicalDeserialize for (A, B, C, D, E)where
A: CanonicalDeserialize,
B: CanonicalDeserialize,
C: CanonicalDeserialize,
D: CanonicalDeserialize,
E: CanonicalDeserialize,
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<K, V> CanonicalDeserialize for BTreeMap<K, V>
impl<K, V> CanonicalDeserialize for BTreeMap<K, V>
Source§fn deserialize_with_mode<R: Read>(
reader: R,
compress: Compress,
validate: Validate,
) -> Result<Self, SerializationError>
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Deserializes a BTreeMap from len(map) || key 1 || value 1 || ... || key n || value n.
Source§impl<K, V> CanonicalDeserialize for HashMap<K, V>
Available on crate feature std only.
impl<K, V> CanonicalDeserialize for HashMap<K, V>
std only.Source§fn deserialize_with_mode<R: Read>(
reader: R,
compress: Compress,
validate: Validate,
) -> Result<Self, SerializationError>
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Deserializes a HashMap from len(map) || key 1 || value 1 || ... || key n || value n.
Source§impl<T> CanonicalDeserialize for Cow<'_, T>
impl<T> CanonicalDeserialize for Cow<'_, T>
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<T> CanonicalDeserialize for Box<[T]>where
T: CanonicalDeserialize,
impl<T> CanonicalDeserialize for Box<[T]>where
T: CanonicalDeserialize,
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<T> CanonicalDeserialize for BTreeSet<T>where
T: CanonicalDeserialize + Ord,
impl<T> CanonicalDeserialize for BTreeSet<T>where
T: CanonicalDeserialize + Ord,
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<T> CanonicalDeserialize for LinkedList<T>where
T: CanonicalDeserialize,
impl<T> CanonicalDeserialize for LinkedList<T>where
T: CanonicalDeserialize,
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<T> CanonicalDeserialize for VecDeque<T>where
T: CanonicalDeserialize,
impl<T> CanonicalDeserialize for VecDeque<T>where
T: CanonicalDeserialize,
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<T> CanonicalDeserialize for Vec<T>where
T: CanonicalDeserialize,
impl<T> CanonicalDeserialize for Vec<T>where
T: CanonicalDeserialize,
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<T> CanonicalDeserialize for HashSet<T>
impl<T> CanonicalDeserialize for HashSet<T>
fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<T: Send + Sync> CanonicalDeserialize for PhantomData<T>
impl<T: Send + Sync> CanonicalDeserialize for PhantomData<T>
fn deserialize_with_mode<R: Read>( _reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>
Source§impl<T: CanonicalDeserialize + ToOwned + Sync + Send> CanonicalDeserialize for Arc<T>
Available on target_has_atomic=ptr only.
impl<T: CanonicalDeserialize + ToOwned + Sync + Send> CanonicalDeserialize for Arc<T>
target_has_atomic=ptr only.