pub trait TryOwnedUnpack: Send {
type Unpacked: Send + Sized + Debug;
// Required method
fn try_owned_unpack(iter: &mut Iter<'_, u8>) -> Result<Self::Unpacked>;
// Provided methods
fn try_array_owned_unpack(iter: &mut Iter<'_, u8>) -> Result<Self::Unpacked> { ... }
fn try_owned_unpack_from_slice(slice: &[u8]) -> Result<Self::Unpacked> { ... }
}Expand description
Trait for unpacking only into owned types, like Vec<u8> or String.
Similar to TryUnpack, except that this trait cannot unpack into borrowed
types like &[u8] or &str.
If you have a TryOwnedUnpack implementation, you can automatically implement
TryUnpack using the impl_try_unpack_for_owned! macro.
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_owned_unpack(iter: &mut Iter<'_, u8>) -> Result<Self::Unpacked>
fn try_array_owned_unpack(iter: &mut Iter<'_, u8>) -> Result<Self::Unpacked>
Attempts to decode an item from an array at the given iterator into
an instance of Self, where Self must be an “owned” type.
Array encoding is occasionally different than single-value encoding, hence the need for a separate method.
Default behavior is the same as try_owned_unpack().
Sourcefn try_owned_unpack_from_slice(slice: &[u8]) -> Result<Self::Unpacked>
fn try_owned_unpack_from_slice(slice: &[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.