Skip to main content

CanonicalDeserialize

Trait CanonicalDeserialize 

Source
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§

Source

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§

Source

fn deserialize_compressed<R: Read>( reader: R, ) -> Result<Self, SerializationError>

Reads Self from reader using the compressed form if applicable. Performs validation if applicable.

Source

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.

Source

fn deserialize_uncompressed<R: Read>( reader: R, ) -> Result<Self, SerializationError>

Reads Self from reader using the uncompressed form. Performs validation if applicable.

Source

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

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for i8

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for i16

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for i32

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for i64

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for isize

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for u8

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for u16

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for u32

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for u64

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for ()

Source§

fn deserialize_with_mode<R: Read>( _reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for usize

Source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for BigUint

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl CanonicalDeserialize for String

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<A> CanonicalDeserialize for (A,)

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<A, B> CanonicalDeserialize for (A, B)

Source§

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)

Source§

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)

Source§

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)

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<K, V> CanonicalDeserialize for BTreeMap<K, V>

Source§

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.
Source§

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>

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T> CanonicalDeserialize for Box<[T]>

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T> CanonicalDeserialize for BTreeSet<T>

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T> CanonicalDeserialize for LinkedList<T>

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T> CanonicalDeserialize for VecDeque<T>

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T> CanonicalDeserialize for Vec<T>

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T> CanonicalDeserialize for HashSet<T>

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T: Send + Sync> CanonicalDeserialize for PhantomData<T>

Source§

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.
Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T: CanonicalDeserialize> CanonicalDeserialize for Option<T>

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Source§

impl<T: CanonicalDeserialize, const N: usize> CanonicalDeserialize for [T; N]

Source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, ) -> Result<Self, SerializationError>

Implementors§