pub trait Deserializable: Sized {
// Required method
fn read_from<R: ByteReader>(
source: &mut R,
) -> Result<Self, DeserializationError>;
// 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: ByteReader>(
source: &mut R,
) -> Result<Self, DeserializationError>
fn read_from<R: ByteReader>( source: &mut R, ) -> Result<Self, DeserializationError>
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.
Object Safety§
This trait is not object safe.