#[repr(C, packed(1))]pub struct OptionVarULE<U: VarULE + ?Sized>(/* private fields */);
Expand description
A type allowing one to represent Option<U>
for VarULE
U
types.
use zerovec::ule::OptionVarULE;
use zerovec::VarZeroVec;
let mut zv: VarZeroVec<OptionVarULE<str>> = VarZeroVec::new();
zv.make_mut().push(&None::<&str>);
zv.make_mut().push(&Some("hello"));
zv.make_mut().push(&Some("world"));
zv.make_mut().push(&None::<&str>);
assert_eq!(zv.get(0).unwrap().as_ref(), None);
assert_eq!(zv.get(1).unwrap().as_ref(), Some("hello"));
Implementations§
Trait Implementations§
Source§impl<T, U> EncodeAsVarULE<OptionVarULE<U>> for Option<T>
impl<T, U> EncodeAsVarULE<OptionVarULE<U>> for Option<T>
Source§fn encode_var_ule_as_slices<R>(&self, _: impl FnOnce(&[&[u8]]) -> R) -> R
fn encode_var_ule_as_slices<R>(&self, _: impl FnOnce(&[&[u8]]) -> R) -> R
Calls
cb
with a piecewise list of byte slices that when concatenated
produce the memory pattern of the corresponding instance of T
. Read moreSource§fn encode_var_ule_len(&self) -> usize
fn encode_var_ule_len(&self) -> usize
Return the length, in bytes, of the corresponding
VarULE
typeSource§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
Write the corresponding
VarULE
type to the dst
buffer. dst
should
be the size of Self::encode_var_ule_len()
Source§impl<U: VarULE + ?Sized + PartialOrd> PartialOrd for OptionVarULE<U>
impl<U: VarULE + ?Sized + PartialOrd> PartialOrd for OptionVarULE<U>
Source§impl<U: VarULE + ?Sized> VarULE for OptionVarULE<U>
impl<U: VarULE + ?Sized> VarULE for OptionVarULE<U>
Source§fn validate_bytes(slice: &[u8]) -> Result<(), UleError>
fn validate_bytes(slice: &[u8]) -> Result<(), UleError>
Validates a byte slice,
&[u8]
. Read moreSource§unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Self
unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Self
Takes a byte slice,
&[u8]
, and return it as &Self
with the same lifetime, assuming
that this byte slice has previously been run through Self::parse_bytes()
with
success. Read moreSource§impl<'a, T> ZeroMapKV<'a> for OptionVarULE<T>
impl<'a, T> ZeroMapKV<'a> for OptionVarULE<T>
Source§type Container = VarZeroVec<'a, OptionVarULE<T>>
type Container = VarZeroVec<'a, OptionVarULE<T>>
The container that can be used with this type:
ZeroVec
or VarZeroVec
.type Slice = VarZeroSlice<OptionVarULE<T>>
Source§type GetType = OptionVarULE<T>
type GetType = OptionVarULE<T>
The type produced by
Container::get()
Read moreimpl<U: VarULE + ?Sized + Eq> Eq for OptionVarULE<U>
Auto Trait Implementations§
impl<U> Freeze for OptionVarULE<U>where
U: ?Sized,
impl<U> RefUnwindSafe for OptionVarULE<U>where
U: RefUnwindSafe + ?Sized,
impl<U> Send for OptionVarULE<U>
impl<U> !Sized for OptionVarULE<U>
impl<U> Sync for OptionVarULE<U>
impl<U> Unpin for OptionVarULE<U>
impl<U> UnwindSafe for OptionVarULE<U>where
U: UnwindSafe + ?Sized,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> EncodeAsVarULE<T> for T
impl<T> EncodeAsVarULE<T> for T
Source§fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
Calls
cb
with a piecewise list of byte slices that when concatenated
produce the memory pattern of the corresponding instance of T
. Read moreSource§fn encode_var_ule_len(&self) -> usize
fn encode_var_ule_len(&self) -> usize
Return the length, in bytes, of the corresponding
VarULE
typeSource§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
Write the corresponding
VarULE
type to the dst
buffer. dst
should
be the size of Self::encode_var_ule_len()
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: (unsized)