pub trait VectoredReadComp<'a>: Sized {
// Required method
fn read_vectored_comp<const E: bool>(
curs: &mut VectoredCursor<'a>,
) -> Result<Self, WireError>;
}
Expand description
Deserialization to a composite data type (i.e. containing both owned structures and references) from the vectored wire.
A type that implements this trait guarantees that it can be constructed using a
number of bytes from the provided VectoredCursor
. If the bytes contained on the
vectored wire would lead to the construction of an invalid instance of the object,
an error will be returned instead of the object.
Required Methods§
Sourcefn read_vectored_comp<const E: bool>(
curs: &mut VectoredCursor<'a>,
) -> Result<Self, WireError>
fn read_vectored_comp<const E: bool>( curs: &mut VectoredCursor<'a>, ) -> Result<Self, WireError>
Consumes a number of bytes from curs
and returns an owned instance of the specified
type, or returns a WireError
on failure.
The returned instance must not outlive the lifetime of the vectored buffer that it was
constructed from, though it may outlive the VectoredReader
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
- not enough bytes remained on the cursor to construct
the type.
WireError::InvalidData
- the bytes retrieved from curs
could not be used to
construct a valid instance 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.