pub trait WireReadRef {
// Required method
fn read_wire_ref<'a>(
curs: &mut WireCursor<'a>,
size: usize,
) -> Result<&'a Self, WireError>;
}
Expand description
Deserialization to an immutable reference of a data type from the wire.
A type that implements this trait guarantees that it can be constructed using a given
number of bytes from the provided WireCursor
. If the bytes contained on the wire
cannot be converted into a reference of a valid instance of the object, an error will
be returned instead of the reference.
Required Methods§
Sourcefn read_wire_ref<'a>(
curs: &mut WireCursor<'a>,
size: usize,
) -> Result<&'a Self, WireError>
fn read_wire_ref<'a>( curs: &mut WireCursor<'a>, size: usize, ) -> Result<&'a Self, WireError>
Consumes exactly size
bytes from curs
and returns an immutable reference of the specified type,
or returns a WireError
on failure.
The returned reference must not outlive the lifetime of the buffer that it references,
though it may outlive the WireReader
used to construct it.
The generic boolean E
designates the intended endianness of the data being read. If E
is set to
true
, then the data will be deserialized in big endian format; if false
, it will be deserialized
in little endian.
§Errors
WireError::InsufficientBytes
- less than size
bytes remained on the cursor.
WireError::InvalidData
- the bytes retrieved from curs
could not be used to construct a valid
reference of the type.
WireError::Internal
- an internal error occurred in the wire-rs
library
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.