Struct zerovec::ule::OptionVarULE
source · #[repr(C, packed(1))]pub struct OptionVarULE<U: VarULE + ?Sized>(PhantomData<U>, bool, [u8]);
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"));
Tuple Fields§
§0: PhantomData<U>
§1: bool
§2: [u8]
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 + PartialEq> PartialEq for OptionVarULE<U>
impl<U: VarULE + ?Sized + PartialEq> PartialEq for OptionVarULE<U>
source§impl<U: VarULE + ?Sized + PartialOrd> PartialOrd for OptionVarULE<U>
impl<U: VarULE + ?Sized + PartialOrd> PartialOrd for OptionVarULE<U>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl<U: VarULE + ?Sized> VarULE for OptionVarULE<U>
impl<U: VarULE + ?Sized> VarULE for OptionVarULE<U>
source§fn validate_byte_slice(slice: &[u8]) -> Result<(), ZeroVecError>
fn validate_byte_slice(slice: &[u8]) -> Result<(), ZeroVecError>
Validates a byte slice,
&[u8]
. Read moresource§unsafe fn from_byte_slice_unchecked(bytes: &[u8]) -> &Self
unsafe fn from_byte_slice_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_byte_slice()
with
success. Read moresource§fn parse_byte_slice(bytes: &[u8]) -> Result<&Self, ZeroVecError>
fn parse_byte_slice(bytes: &[u8]) -> Result<&Self, ZeroVecError>
source§fn as_byte_slice(&self) -> &[u8] ⓘ
fn as_byte_slice(&self) -> &[u8] ⓘ
source§impl<'a, T> ZeroMapKV<'a> for OptionVarULE<T>
impl<'a, T> ZeroMapKV<'a> for OptionVarULE<T>
§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>>
§type GetType = OptionVarULE<T>
type GetType = OptionVarULE<T>
The type produced by
Container::get()
Read more§type OwnedType = Box<OptionVarULE<T>>
type OwnedType = Box<OptionVarULE<T>>
The type produced by
Container::replace()
and Container::remove()
,
also used during deserialization. If Self
is human readable serialized,
deserializing to Self::OwnedType
should produce the same value once
passed through Self::owned_as_self()
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()