Struct yoke::cartable_ptr::CartableOptionPointer
source · pub struct CartableOptionPointer<C>where
C: CartablePointerLike,{
inner: NonNull<C::Raw>,
_cartable: PhantomData<C>,
}
Expand description
A type with similar semantics as Option<C<T>>
but with a niche.
This type cannot be publicly constructed. To use this in a Yoke
, see
Yoke::convert_cart_into_option_pointer
.
Fields§
§inner: NonNull<C::Raw>
The inner pointer.
§Invariants
- Must be either
SENTINEL_PTR
or created fromCartablePointerLike::into_raw
- If non-sentinel, must always be for a valid SelectedRc
_cartable: PhantomData<C>
Implementations§
source§impl<C> CartableOptionPointer<C>where
C: CartablePointerLike,
impl<C> CartableOptionPointer<C>where
C: CartablePointerLike,
sourcepub(crate) fn from_cartable(cartable: C) -> Self
pub(crate) fn from_cartable(cartable: C) -> Self
Creates a new instance corresponding to a Some
value.
Trait Implementations§
source§impl<C> Clone for CartableOptionPointer<C>where
C: CloneableCartablePointerLike,
impl<C> Clone for CartableOptionPointer<C>where
C: CloneableCartablePointerLike,
source§impl<C> Debug for CartableOptionPointer<C>
impl<C> Debug for CartableOptionPointer<C>
source§impl<C> Drop for CartableOptionPointer<C>where
C: CartablePointerLike,
impl<C> Drop for CartableOptionPointer<C>where
C: CartablePointerLike,
impl<C> CloneableCart for CartableOptionPointer<C>where
C: CloneableCartablePointerLike + CloneableCart,
impl<C> Send for CartableOptionPointer<C>where
C: Sync + CartablePointerLike,
impl<C> Sync for CartableOptionPointer<C>where
C: Send + CartablePointerLike,
Auto Trait Implementations§
impl<C> Freeze for CartableOptionPointer<C>
impl<C> RefUnwindSafe for CartableOptionPointer<C>
impl<C> Unpin for CartableOptionPointer<C>where
C: Unpin,
impl<C> UnwindSafe for CartableOptionPointer<C>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)