[−][src]Struct vec_mut_scan::VecGrowScanItem
Reference wrapper that enables item insertion and removal for VecGrowScan
.
Implementations
impl<'s, 'a, T: 'a> VecGrowScanItem<'s, 'a, T>
[src]
pub fn remove(mut self: Self) -> T
[src]
Removes and returns this item from the vector.
pub fn replace(mut self: Self, value: T) -> T
[src]
Replaces this item with a new value, returns the old value.
This is equivalent to assigning a new value or calling std::mem::replace
on the mutable
reference obtained by using DerefMut
, but can avoid an intermediate move within the
vector's buffer.
pub fn replace_with_many(
mut self: Self,
values: impl IntoIterator<Item = T>
) -> T
[src]
mut self: Self,
values: impl IntoIterator<Item = T>
) -> T
Replace the current item with a sequence of items. Returns the replaced item.
pub fn replace_with(mut self: Self, f: impl FnOnce(T) -> T)
[src]
Like replace
, but compute the replacement value with
ownership of the removed item.
pub fn replace_with_many_with<F, I>(mut self: Self, f: F) where
F: FnOnce(T) -> I,
I: IntoIterator<Item = T>,
[src]
F: FnOnce(T) -> I,
I: IntoIterator<Item = T>,
Like replace_with_many
, but compute the replacement
sequence with ownership of the removed item.
pub fn insert_before(&mut self, value: T)
[src]
Insert an item before the current item.
pub fn insert_many_before(&mut self, values: impl IntoIterator<Item = T>)
[src]
Insert a sequence of items before the current item.
Equivalent to repeatedly calling insert_before
, except
that reallocations will be minimized with iterator size hints.
pub fn insert_after(self, value: T)
[src]
Insert an item after the current item. Inserted items are not returned during iteration.
Note that this consumes the VecGrowScanItem
, as it is necessary to commit that the
current item will not be removed. If you need to insert multiple elements, you can either
use insert_many_after
, or use
VecGrowScan::insert
after you drop this VecGrowScanItem
.
pub fn insert_many_after(self, values: impl IntoIterator<Item = T>)
[src]
Insert a sequence of items after the current item. Inserted items are not returned during iteration.
Note that this consumes the VecGrowScanItem
, as it is necessary to commit that the
current item will not be removed. If you need to insert more elements, you can use
VecGrowScan::insert
(or insert_many
) after you drop this
VecGrowScanItem
.
pub fn slices(&self) -> (&[T], &[T], &[T], &[T])
[src]
Access the whole vector.
This provides access to the whole vector at any point during the scan.
In general while scanning, the vector content is not contiguous, and some of the contents
may be kept out-of-place in a VecDeque
. Thus the content is returned as
four slices. The first three slices, in order, contain all elements already visited, while
the fourth slice contains the remaining elements starting with this element.
This method is also present on the VecGrowScan
borrowed by this reference wrapper,
allowing access without an active VecGrowScanItem
.
pub fn slices_mut(&mut self) -> (&mut [T], &mut [T], &mut [T], &mut [T])
[src]
Access and mutate the whole vector.
This provides mutable access to the whole vector at any point during the scan.
In general while scanning, the vector content is not contiguous, and some of the contents
may be kept out-of-place in a VecDeque
. Thus the content is returned as
four slices. The first three slices, in order, contain all elements already visited, while
the fourth slice contains the remaining elements starting with this element.
This method is also present on the VecGrowScan
borrowed by this reference wrapper,
allowing access without an active VecGrowScanItem
.
Trait Implementations
impl<'s, 'a, T: 'a> Deref for VecGrowScanItem<'s, 'a, T>
[src]
impl<'s, 'a, T: 'a> DerefMut for VecGrowScanItem<'s, 'a, T>
[src]
impl<'s, 'a, T: 'a> Drop for VecGrowScanItem<'s, 'a, T>
[src]
Auto Trait Implementations
impl<'s, 'a, T> RefUnwindSafe for VecGrowScanItem<'s, 'a, T> where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<'s, 'a, T> !Send for VecGrowScanItem<'s, 'a, T>
[src]
impl<'s, 'a, T> !Sync for VecGrowScanItem<'s, 'a, T>
[src]
impl<'s, 'a, T> Unpin for VecGrowScanItem<'s, 'a, T> where
'a: 's,
[src]
'a: 's,
impl<'s, 'a, T> !UnwindSafe for VecGrowScanItem<'s, 'a, T>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,