pub trait TryUnpack<'a> {
type Unpacked: Send + Sized + Debug;
// Required method
fn try_unpack(iter: &mut Iter<'a, u8>) -> Result<Self::Unpacked>;
// Provided methods
fn try_array_unpack(iter: &mut Iter<'a, u8>) -> Result<Self::Unpacked> { ... }
fn try_unpack_from_slice(slice: &'a [u8]) -> Result<Self::Unpacked> { ... }
}Expand description
Trait for unpacking a spinel-encoded buffer to a specific type.
Similar to TryOwnedUnpack, except that it can also unpack into borrowed
types, like &[u8] and &str.
Required Associated Types§
Sourcetype Unpacked: Send + Sized + Debug
type Unpacked: Send + Sized + Debug
The type of the unpacked result. This can be the same as Self,
but in some cases it can be different. This is because Self is
a marker type, and may not even be Sized. For example, if Self is
SpinelUint, then Unpacked would be u32 (because SpinelUint is just
a marker trait indicating a variably-sized unsigned integer).
Required Methods§
Provided Methods§
Sourcefn try_array_unpack(iter: &mut Iter<'a, u8>) -> Result<Self::Unpacked>
fn try_array_unpack(iter: &mut Iter<'a, u8>) -> Result<Self::Unpacked>
Attempts to decode an item from an array at the given iterator into
an instance of Self.
Array encoding is occasionally different than single-value encoding, hence the need for a separate method.
Default behavior is the same as try_unpack().
Sourcefn try_unpack_from_slice(slice: &'a [u8]) -> Result<Self::Unpacked>
fn try_unpack_from_slice(slice: &'a [u8]) -> Result<Self::Unpacked>
Convenience method for unpacking directly from a borrowed slice.
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.