pub struct ConsumedSlot;Expand description
Marker left in an EXTPTRSXP slot while a consuming (self by value)
method runs, and left behind for good if that method panics.
#[miniextendr] methods taking bare self move the stored value out of
the R handle with ExternalPtr::<()>::take_for_consuming, call the
method, and either write the result back
(ExternalPtr::<()>::restore_after_consuming, for self -> Self) or
leave the slot consumed (terminal self -> T). A slot holding this marker
makes every later method call on the handle fail with a “consumed” error
instead of a type mismatch; the finaliser drops the marker like any value.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ConsumedSlot
impl RefUnwindSafe for ConsumedSlot
impl Send for ConsumedSlot
impl Sync for ConsumedSlot
impl Unpin for ConsumedSlot
impl UnsafeUnpin for ConsumedSlot
impl UnwindSafe for ConsumedSlot
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
Source§impl<T> RDebug for Twhere
T: Debug,
impl<T> RDebug for Twhere
T: Debug,
Source§impl<T> SizeHint for Twhere
T: ?Sized,
impl<T> SizeHint for Twhere
T: ?Sized,
Source§default fn lower_bound(&self) -> usize
default fn lower_bound(&self) -> usize
core_io_internals)[u8; 12] could return any value between 0 and
12 inclusively as a correct implementation. Read moreSource§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)]const SIZE: usize = _
#[doc(hidden)]const SIZE: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGN: usize = _
#[doc(hidden)]const ALIGN: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGNMENT: Alignment = _
#[doc(hidden)]const ALIGNMENT: Alignment = _
ptr_alignment_type)Source§#[doc(hidden)]const IS_ZST: bool = _
#[doc(hidden)]const IS_ZST: bool = _
sized_type_properties)Source§#[doc(hidden)]const LAYOUT: Layout = _
#[doc(hidden)]const LAYOUT: Layout = _
sized_type_properties)Source§#[doc(hidden)]const MAX_SLICE_LEN: usize = _
#[doc(hidden)]const MAX_SLICE_LEN: usize = _
sized_type_properties)[Self]. Read moreLayout§
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: 0 bytes