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 Deserializable for StoreNode
impl Deserializable for StoreNode
fn read_from<R>(source: &mut R) -> Result<StoreNode, DeserializationError>where R: ByteReader,
§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 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 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 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 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 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 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 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 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.