pub trait Deserializable: Sized {
    // Required method
    fn read_from<R>(source: &mut R) -> Result<Self, DeserializationError>
       where R: ByteReader;

    // Provided methods
    fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError> { ... }
    fn read_batch_from<R>(
        source: &mut R,
        num_elements: usize
    ) -> Result<Vec<Self, Global>, DeserializationError>
       where R: ByteReader { ... }
}
Expand description

Defines how to deserialize Self from bytes.

Required Methods§

source

fn read_from<R>(source: &mut R) -> Result<Self, DeserializationError>where R: ByteReader,

Reads a sequence of bytes from the provided source, attempts to deserialize these bytes into Self, and returns the result.

Errors

Returns an error if:

  • The source does not contain enough bytes to deserialize Self.
  • Bytes read from the source do not represent a valid value for Self.

Provided Methods§

source

fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>

Attempts to deserialize the provided bytes into Self and returns the result.

Errors

Returns an error if:

  • The bytes do not contain enough information to deserialize Self.
  • The bytes do not represent a valid value for Self.

Note: if bytes contains more data than needed to deserialize self, no error is returned.

source

fn read_batch_from<R>( source: &mut R, num_elements: usize ) -> Result<Vec<Self, Global>, DeserializationError>where R: ByteReader,

Reads a sequence of bytes from the provided source, attempts to deserialize these bytes into a vector with the specified number of Self elements, and returns the result.

Errors

Returns an error if:

  • The source does not contain enough bytes to deserialize the specified number of elements.
  • Bytes read from the source do not represent a valid value for Self for any of the elements.

Note: if the error occurs, the reader is not rolled back to the state prior to calling this function.

Implementations on Foreign Types§

source§

impl Deserializable for Commitments

source§

fn read_from<R>(source: &mut R) -> Result<Commitments, DeserializationError>where R: ByteReader,

Reads commitments from the specified source and returns the result.

Errors

Returns an error of a valid Commitments struct could not be read from the specified source.

source§

impl Deserializable for Queries

source§

fn read_from<R>(source: &mut R) -> Result<Queries, DeserializationError>where R: ByteReader,

Reads a query struct from the specified source and returns the result

Errors

Returns an error of a valid query struct could not be read from the specified source.

source§

impl Deserializable for OodFrame

source§

fn read_from<R>(source: &mut R) -> Result<OodFrame, DeserializationError>where R: ByteReader,

Reads a OOD frame from the specified source and returns the result

Errors

Returns an error of a valid OOD frame could not be read from the specified source.

source§

impl Deserializable for Context

source§

fn read_from<R>(source: &mut R) -> Result<Context, DeserializationError>where R: ByteReader,

Reads proof context from the specified source and returns the result.

Errors

Returns an error of a valid Context struct could not be read from the specified source.

source§

impl Deserializable for BaseElement

source§

impl Deserializable for BaseElement

source§

impl<B> Deserializable for QuadExtension<B>where B: ExtensibleField<2>,

source§

impl Deserializable for BaseElement

source§

impl<B> Deserializable for CubeExtension<B>where B: ExtensibleField<3>,

source§

impl Deserializable for FriProof

source§

fn read_from<R>(source: &mut R) -> Result<FriProof, DeserializationError>where R: ByteReader,

Reads a FRI proof from the specified source and returns the result.

Errors

Returns an error if a valid proof could not be read from the source.

Implementors§