Trait miden_processor::utils::Deserializable
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§
fn read_from<R>(source: &mut R) -> Result<Self, DeserializationError>where
R: ByteReader,
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 deserializeSelf
. - Bytes read from the
source
do not represent a valid value forSelf
.
Provided Methods§
fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>
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 deserializeSelf
. - The
bytes
do not represent a valid value forSelf
.
Note: if bytes
contains more data than needed to deserialize self
, no error is
returned.
fn read_batch_from<R>(
source: &mut R,
num_elements: usize
) -> Result<Vec<Self, Global>, DeserializationError>where
R: ByteReader,
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 forSelf
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§
§impl<const N: usize> Deserializable for Blake3Digest<N>
impl<const N: usize> Deserializable for Blake3Digest<N>
fn read_from<R>(source: &mut R) -> Result<Blake3Digest<N>, DeserializationError>where R: ByteReader,
§impl<B> Deserializable for CubeExtension<B>where
B: ExtensibleField<3>,
impl<B> Deserializable for CubeExtension<B>where B: ExtensibleField<3>,
fn read_from<R>( source: &mut R ) -> Result<CubeExtension<B>, DeserializationError>where R: ByteReader,
§impl Deserializable for BaseElement
impl Deserializable for BaseElement
fn read_from<R>(source: &mut R) -> Result<BaseElement, DeserializationError>where R: ByteReader,
§impl Deserializable for BaseElement
impl Deserializable for BaseElement
fn read_from<R>(source: &mut R) -> Result<BaseElement, DeserializationError>where R: ByteReader,
§impl Deserializable for FieldExtension
impl Deserializable for FieldExtension
§fn read_from<R>(source: &mut R) -> Result<FieldExtension, DeserializationError>where
R: ByteReader,
fn read_from<R>(source: &mut R) -> Result<FieldExtension, DeserializationError>where R: ByteReader,
Reads a field extension enum from the specified source
.
§impl Deserializable for TraceLayout
impl Deserializable for TraceLayout
§fn read_from<R>(source: &mut R) -> Result<TraceLayout, DeserializationError>where
R: ByteReader,
fn read_from<R>(source: &mut R) -> Result<TraceLayout, DeserializationError>where R: ByteReader,
Reads [TraceLayout] from the specified source
and returns the result.
Errors
Returns an error of a valid [TraceLayout] struct could not be read from the specified
source
.
§impl Deserializable for Commitments
impl Deserializable for Commitments
§fn read_from<R>(source: &mut R) -> Result<Commitments, DeserializationError>where
R: ByteReader,
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
.
§impl Deserializable for ProofOptions
impl Deserializable for ProofOptions
§fn read_from<R>(source: &mut R) -> Result<ProofOptions, DeserializationError>where
R: ByteReader,
fn read_from<R>(source: &mut R) -> Result<ProofOptions, DeserializationError>where R: ByteReader,
Reads proof options from the specified source
and returns the result.
Errors
Returns an error of a valid proof options could not be read from the specified source
.
§impl Deserializable for Queries
impl Deserializable for Queries
§fn read_from<R>(source: &mut R) -> Result<Queries, DeserializationError>where
R: ByteReader,
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.
§impl Deserializable for OodFrame
impl Deserializable for OodFrame
§fn read_from<R>(source: &mut R) -> Result<OodFrame, DeserializationError>where
R: ByteReader,
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
.
§impl Deserializable for Context
impl Deserializable for Context
§fn read_from<R>(source: &mut R) -> Result<Context, DeserializationError>where
R: ByteReader,
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
.
§impl Deserializable for FriProof
impl Deserializable for FriProof
§fn read_from<R>(source: &mut R) -> Result<FriProof, DeserializationError>where
R: ByteReader,
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.