struct Hole<'a, T: 'a> {
data: &'a mut [T],
elt: ManuallyDrop<T>,
pos: usize,
}Expand description
Hole represents a hole in a slice i.e., an index without valid value
(because it was moved from or duplicated).
In drop, Hole will restore the slice by filling the hole
position with the value that was originally removed.
Fields§
§data: &'a mut [T]§elt: ManuallyDrop<T>§pos: usizeImplementations§
Source§impl<'a, T> Hole<'a, T>
impl<'a, T> Hole<'a, T>
Sourceunsafe fn new(data: &'a mut [T], pos: usize) -> Self
unsafe fn new(data: &'a mut [T], pos: usize) -> Self
Creates a new Hole at index pos.
Unsafe because pos must be within the data slice.
fn pos(&self) -> usize
Trait Implementations§
Auto Trait Implementations§
impl<'a, T> !UnwindSafe for Hole<'a, T>
impl<'a, T> Freeze for Hole<'a, T>where
T: Freeze,
impl<'a, T> RefUnwindSafe for Hole<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for Hole<'a, T>where
T: Send,
impl<'a, T> Sync for Hole<'a, T>where
T: Sync,
impl<'a, T> Unpin for Hole<'a, T>where
T: Unpin,
impl<'a, T> UnsafeUnpin for Hole<'a, T>where
T: UnsafeUnpin,
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> 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
🔬This is a nightly-only experimental API. (
core_io_internals)Returns a lower bound on the number of elements this container-like item
contains.
For example, an array
[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 = _
🔬This is a nightly-only experimental API. (
sized_type_properties)Source§#[doc(hidden)]const ALIGN: usize = _
#[doc(hidden)]const ALIGN: usize = _
🔬This is a nightly-only experimental API. (
sized_type_properties)Source§#[doc(hidden)]const ALIGNMENT: Alignment = _
#[doc(hidden)]const ALIGNMENT: Alignment = _
🔬This is a nightly-only experimental API. (
ptr_alignment_type #102070)Source§#[doc(hidden)]const IS_ZST: bool = _
#[doc(hidden)]const IS_ZST: bool = _
🔬This is a nightly-only experimental API. (
sized_type_properties)Source§#[doc(hidden)]const LAYOUT: Layout = _
#[doc(hidden)]const LAYOUT: Layout = _
🔬This is a nightly-only experimental API. (
sized_type_properties)Source§#[doc(hidden)]const MAX_SLICE_LEN: usize = _
#[doc(hidden)]const MAX_SLICE_LEN: usize = _
🔬This is a nightly-only experimental API. (
sized_type_properties)The largest safe length for a
[Self]. Read more