pub trait Deserializable: Sized {
// Required method
fn read_from<R>(source: &mut R) -> Result<Self, DeserializationError>
where R: ByteReader;
// Provided method
fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError> { ... }
}
Expand description
Defines how to deserialize Self
from bytes.
Required Methods§
Sourcefn 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§
Sourcefn 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.
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 Deserializable for NodeMutation
impl Deserializable for NodeMutation
fn read_from<R>(source: &mut R) -> Result<NodeMutation, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for SmtLeaf
impl Deserializable for SmtLeaf
fn read_from<R>(source: &mut R) -> Result<SmtLeaf, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for u8
impl Deserializable for u8
fn read_from<R>(source: &mut R) -> Result<u8, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for u16
impl Deserializable for u16
fn read_from<R>(source: &mut R) -> Result<u16, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for u32
impl Deserializable for u32
fn read_from<R>(source: &mut R) -> Result<u32, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for u64
impl Deserializable for u64
fn read_from<R>(source: &mut R) -> Result<u64, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for u128
impl Deserializable for u128
fn read_from<R>(source: &mut R) -> Result<u128, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for ()
impl Deserializable for ()
fn read_from<R>(_source: &mut R) -> Result<(), DeserializationError>where
R: ByteReader,
Source§impl Deserializable for usize
impl Deserializable for usize
fn read_from<R>(source: &mut R) -> Result<usize, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for String
impl Deserializable for String
fn read_from<R>(source: &mut R) -> Result<String, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for InOrderIndex
impl Deserializable for InOrderIndex
fn read_from<R>(source: &mut R) -> Result<InOrderIndex, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for PartialMmr
impl Deserializable for PartialMmr
fn read_from<R>(source: &mut R) -> Result<PartialMmr, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for RootPath
impl Deserializable for RootPath
fn read_from<R>(source: &mut R) -> Result<RootPath, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for ValuePath
impl Deserializable for ValuePath
fn read_from<R>(source: &mut R) -> Result<ValuePath, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for SparseMerklePath
impl Deserializable for SparseMerklePath
fn read_from<R>(
source: &mut R,
) -> Result<SparseMerklePath, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for SourceSpan
impl Deserializable for SourceSpan
fn read_from<R>(source: &mut R) -> Result<SourceSpan, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for BaseElement
impl Deserializable for BaseElement
fn read_from<R>(source: &mut R) -> Result<BaseElement, DeserializationError>where
R: ByteReader,
Source§impl Deserializable for BaseElement
impl Deserializable for BaseElement
fn read_from<R>(source: &mut R) -> Result<BaseElement, DeserializationError>where
R: ByteReader,
Source§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,
Source§impl<H> Deserializable for BatchMerkleProof<H>where
H: Hasher,
impl<H> Deserializable for BatchMerkleProof<H>where
H: Hasher,
Source§fn read_from<R>(
source: &mut R,
) -> Result<BatchMerkleProof<H>, DeserializationError>where
R: ByteReader,
fn read_from<R>(
source: &mut R,
) -> Result<BatchMerkleProof<H>, DeserializationError>where
R: ByteReader,
Parses internal nodes from the provided source
, and constructs a batch Merkle proof
from these nodes.
§Errors
Returns an error if:
source
could not be deserialized into a valid set of internal nodes.