pub struct VecObserver<'ob, O, S: ?Sized, D = Zero> { /* private fields */ }Expand description
Observer implementation for Vec<T>.
Implementations§
Source§impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
Sourcepub fn reserve(&mut self, additional: usize)
pub fn reserve(&mut self, additional: usize)
See Vec::reserve.
Sourcepub fn reserve_exact(&mut self, additional: usize)
pub fn reserve_exact(&mut self, additional: usize)
See Vec::reserve_exact.
Sourcepub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
See Vec::try_reserve.
Sourcepub fn try_reserve_exact(
&mut self,
additional: usize,
) -> Result<(), TryReserveError>
pub fn try_reserve_exact( &mut self, additional: usize, ) -> Result<(), TryReserveError>
Sourcepub fn shrink_to_fit(&mut self)
pub fn shrink_to_fit(&mut self)
See Vec::shrink_to_fit.
Sourcepub fn shrink_to(&mut self, min_capacity: usize)
pub fn shrink_to(&mut self, min_capacity: usize)
See Vec::shrink_to.
Sourcepub fn as_slice(&self) -> &[O]
pub fn as_slice(&self) -> &[O]
See Vec::as_slice.
Sourcepub fn as_mut_slice(&mut self) -> &mut [O]
pub fn as_mut_slice(&mut self) -> &mut [O]
See Vec::as_mut_slice.
Source§impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
Sourcepub fn append(&mut self, other: &mut Vec<T>)
Available on crate feature append only.
pub fn append(&mut self, other: &mut Vec<T>)
append only.See Vec::append.
Sourcepub fn insert(&mut self, index: usize, element: T)
Available on crate feature append only.
pub fn insert(&mut self, index: usize, element: T)
append only.See Vec::insert.
Source§impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
Sourcepub fn clear(&mut self)
Available on crate features append or truncate only.
pub fn clear(&mut self)
append or truncate only.See Vec::clear.
Sourcepub fn remove(&mut self, index: usize) -> T
Available on crate features append or truncate only.
pub fn remove(&mut self, index: usize) -> T
append or truncate only.See Vec::remove.
Sourcepub fn swap_remove(&mut self, index: usize) -> T
Available on crate features append or truncate only.
pub fn swap_remove(&mut self, index: usize) -> T
append or truncate only.See Vec::swap_remove.
Sourcepub fn pop(&mut self) -> Option<T>
Available on crate features append or truncate only.
pub fn pop(&mut self) -> Option<T>
append or truncate only.See Vec::pop.
Sourcepub fn pop_if(&mut self, predicate: impl FnOnce(&mut O) -> bool) -> Option<T>
Available on crate features append or truncate only.
pub fn pop_if(&mut self, predicate: impl FnOnce(&mut O) -> bool) -> Option<T>
append or truncate only.See Vec::pop_if.
Sourcepub fn truncate(&mut self, len: usize)
Available on crate features append or truncate only.
pub fn truncate(&mut self, len: usize)
append or truncate only.See Vec::truncate.
Sourcepub fn split_off(&mut self, at: usize) -> Vec<T>
Available on crate features append or truncate only.
pub fn split_off(&mut self, at: usize) -> Vec<T>
append or truncate only.See Vec::split_off.
Sourcepub fn resize_with<F>(&mut self, new_len: usize, f: F)where
F: FnMut() -> T,
Available on crate features append or truncate only.
pub fn resize_with<F>(&mut self, new_len: usize, f: F)where
F: FnMut() -> T,
append or truncate only.See Vec::resize_with.
Sourcepub fn drain<R>(&mut self, range: R) -> Drain<'_, T>where
R: RangeBounds<usize>,
Available on crate features append or truncate only.
pub fn drain<R>(&mut self, range: R) -> Drain<'_, T>where
R: RangeBounds<usize>,
append or truncate only.See Vec::drain.
Sourcepub fn splice<R, I>(
&mut self,
range: R,
replace_with: I,
) -> Splice<'_, I::IntoIter>
Available on crate features append or truncate only.
pub fn splice<R, I>( &mut self, range: R, replace_with: I, ) -> Splice<'_, I::IntoIter>
append or truncate only.See Vec::splice.
Sourcepub fn extract_if<F, R>(&mut self, range: R, filter: F) -> ExtractIf<'_, T, F>
Available on crate features append or truncate only.
pub fn extract_if<F, R>(&mut self, range: R, filter: F) -> ExtractIf<'_, T, F>
append or truncate only.See Vec::extract_if.
Source§impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
Sourcepub fn extend_from_slice(&mut self, other: &[T])
Available on crate feature append only.
pub fn extend_from_slice(&mut self, other: &[T])
append only.Sourcepub fn extend_from_within<R>(&mut self, src: R)where
R: RangeBounds<usize>,
Available on crate feature append only.
pub fn extend_from_within<R>(&mut self, src: R)where
R: RangeBounds<usize>,
append only.Source§impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
impl<'ob, O, S, D, T> VecObserver<'ob, O, S, D>
Sourcepub fn resize(&mut self, new_len: usize, value: T)
Available on crate features append or truncate only.
pub fn resize(&mut self, new_len: usize, value: T)
append or truncate only.See Vec::resize.
Methods from Deref<Target = SliceObserver<'ob, UnsafeCell<Vec<O>>, TruncateAppend, S, Succ<D>>>§
Sourcepub fn first_mut(&mut self) -> Option<&mut O>
pub fn first_mut(&mut self) -> Option<&mut O>
See slice::first_mut.
Sourcepub fn split_first_mut(&mut self) -> Option<(&mut O, &mut [O])>
pub fn split_first_mut(&mut self) -> Option<(&mut O, &mut [O])>
Sourcepub fn split_last_mut(&mut self) -> Option<(&mut O, &mut [O])>
pub fn split_last_mut(&mut self) -> Option<(&mut O, &mut [O])>
Sourcepub fn last_mut(&mut self) -> Option<&mut O>
pub fn last_mut(&mut self) -> Option<&mut O>
See slice::last_mut.
Sourcepub fn first_chunk_mut<const N: usize>(&mut self) -> Option<&mut [O; N]>
pub fn first_chunk_mut<const N: usize>(&mut self) -> Option<&mut [O; N]>
Sourcepub fn last_chunk_mut<const N: usize>(&mut self) -> Option<&mut [O; N]>
pub fn last_chunk_mut<const N: usize>(&mut self) -> Option<&mut [O; N]>
Sourcepub fn swap(&mut self, a: usize, b: usize)
pub fn swap(&mut self, a: usize, b: usize)
See slice::swap.
Sourcepub fn iter_mut(&mut self) -> IterMut<'_, O>
pub fn iter_mut(&mut self) -> IterMut<'_, O>
See slice::iter_mut.
Sourcepub fn chunks_mut(&mut self, chunk_size: usize) -> ChunksMut<'_, O>
pub fn chunks_mut(&mut self, chunk_size: usize) -> ChunksMut<'_, O>
See slice::chunks_mut.
Sourcepub fn chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut<'_, O>
pub fn chunks_exact_mut(&mut self, chunk_size: usize) -> ChunksExactMut<'_, O>
Sourcepub fn as_chunks_mut<const N: usize>(&mut self) -> (&mut [[O; N]], &mut [O])
pub fn as_chunks_mut<const N: usize>(&mut self) -> (&mut [[O; N]], &mut [O])
See slice::as_chunks_mut.
Sourcepub fn as_rchunks_mut<const N: usize>(&mut self) -> (&mut [O], &mut [[O; N]])
pub fn as_rchunks_mut<const N: usize>(&mut self) -> (&mut [O], &mut [[O; N]])
Sourcepub fn rchunks_mut(&mut self, chunk_size: usize) -> RChunksMut<'_, O>
pub fn rchunks_mut(&mut self, chunk_size: usize) -> RChunksMut<'_, O>
See slice::rchunks_mut.
Sourcepub fn rchunks_exact_mut(&mut self, chunk_size: usize) -> RChunksExactMut<'_, O>
pub fn rchunks_exact_mut(&mut self, chunk_size: usize) -> RChunksExactMut<'_, O>
Sourcepub fn chunk_by_mut<F>(&mut self, pred: F) -> ChunkByMut<'_, O, F>
pub fn chunk_by_mut<F>(&mut self, pred: F) -> ChunkByMut<'_, O, F>
See slice::chunk_by_mut.
Sourcepub fn split_at_mut(&mut self, mid: usize) -> (&mut [O], &mut [O])
pub fn split_at_mut(&mut self, mid: usize) -> (&mut [O], &mut [O])
See slice::split_at_mut.
Sourcepub fn split_mut<F>(&mut self, pred: F) -> SplitMut<'_, O, F>
pub fn split_mut<F>(&mut self, pred: F) -> SplitMut<'_, O, F>
See slice::split_mut.
Sourcepub fn split_inclusive_mut<F>(&mut self, pred: F) -> SplitInclusiveMut<'_, O, F>
pub fn split_inclusive_mut<F>(&mut self, pred: F) -> SplitInclusiveMut<'_, O, F>
Sourcepub fn rsplit_mut<F>(&mut self, pred: F) -> RSplitMut<'_, O, F>
pub fn rsplit_mut<F>(&mut self, pred: F) -> RSplitMut<'_, O, F>
See slice::rsplit_mut.
Sourcepub fn splitn_mut<F>(&mut self, n: usize, pred: F) -> SplitNMut<'_, O, F>
pub fn splitn_mut<F>(&mut self, n: usize, pred: F) -> SplitNMut<'_, O, F>
See slice::splitn_mut.
Sourcepub fn rsplitn_mut<F>(&mut self, n: usize, pred: F) -> RSplitNMut<'_, O, F>
pub fn rsplitn_mut<F>(&mut self, n: usize, pred: F) -> RSplitNMut<'_, O, F>
See slice::rsplitn_mut.
Trait Implementations§
Source§impl<'ob, O, S: ?Sized, D> AsNormalized for VecObserver<'ob, O, S, D>
impl<'ob, O, S: ?Sized, D> AsNormalized for VecObserver<'ob, O, S, D>
Source§type OuterDepth = Succ<Succ<Zero>>
type OuterDepth = Succ<Succ<Zero>>
The number of outer dereference layers to reach the normalized value.
Source§fn as_normalized_ref(&self) -> &Self::Target
fn as_normalized_ref(&self) -> &Self::Target
Returns a normalized reference to the underlying value.
Source§fn as_normalized_mut(&mut self) -> &mut Self::Targetwhere
Self: AsDerefMutCoinductive<Self::OuterDepth>,
fn as_normalized_mut(&mut self) -> &mut Self::Targetwhere
Self: AsDerefMutCoinductive<Self::OuterDepth>,
Returns a normalized mutable reference to the underlying value.
Source§impl<'ob, O, S, D, T> Debug for VecObserver<'ob, O, S, D>
impl<'ob, O, S, D, T> Debug for VecObserver<'ob, O, S, D>
Source§impl<'ob, O, S: ?Sized, D> Deref for VecObserver<'ob, O, S, D>
impl<'ob, O, S: ?Sized, D> Deref for VecObserver<'ob, O, S, D>
Source§type Target = SliceObserver<'ob, UnsafeCell<Vec<O>>, TruncateAppend, S, Succ<D>>
type Target = SliceObserver<'ob, UnsafeCell<Vec<O>>, TruncateAppend, S, Succ<D>>
The resulting type after dereferencing.
Source§impl<'ob, O, S: ?Sized, D> DerefMut for VecObserver<'ob, O, S, D>
impl<'ob, O, S: ?Sized, D> DerefMut for VecObserver<'ob, O, S, D>
Source§impl<'ob, O, S, D, T, U> Extend<U> for VecObserver<'ob, O, S, D>
Available on crate feature append only.
impl<'ob, O, S, D, T, U> Extend<U> for VecObserver<'ob, O, S, D>
Available on crate feature
append only.Source§fn extend<I: IntoIterator<Item = U>>(&mut self, other: I)
fn extend<I: IntoIterator<Item = U>>(&mut self, other: I)
Extends a collection with the contents of an iterator. Read more
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one)Extends a collection with exactly one element.
Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one)Reserves capacity in a collection for the given number of additional elements. Read more
Source§impl<'ob, O, S, D, T, I> Index<I> for VecObserver<'ob, O, S, D>where
D: Unsigned,
S: AsDerefMut<D, Target = Vec<T>> + 'ob + ?Sized,
O: Observer<'ob, InnerDepth = Zero, Head = T> + 'ob,
T: 'ob,
I: SliceIndex<[O]> + SliceIndexImpl<[O], I::Output>,
impl<'ob, O, S, D, T, I> Index<I> for VecObserver<'ob, O, S, D>where
D: Unsigned,
S: AsDerefMut<D, Target = Vec<T>> + 'ob + ?Sized,
O: Observer<'ob, InnerDepth = Zero, Head = T> + 'ob,
T: 'ob,
I: SliceIndex<[O]> + SliceIndexImpl<[O], I::Output>,
Source§impl<'ob, O, S, D, T, I> IndexMut<I> for VecObserver<'ob, O, S, D>where
D: Unsigned,
S: AsDerefMut<D, Target = Vec<T>> + 'ob + ?Sized,
O: Observer<'ob, InnerDepth = Zero, Head = T> + 'ob,
T: 'ob,
I: SliceIndex<[O]> + SliceIndexImpl<[O], I::Output>,
impl<'ob, O, S, D, T, I> IndexMut<I> for VecObserver<'ob, O, S, D>where
D: Unsigned,
S: AsDerefMut<D, Target = Vec<T>> + 'ob + ?Sized,
O: Observer<'ob, InnerDepth = Zero, Head = T> + 'ob,
T: 'ob,
I: SliceIndex<[O]> + SliceIndexImpl<[O], I::Output>,
Source§impl<'ob, O, S, D, T> Observer<'ob> for VecObserver<'ob, O, S, D>
impl<'ob, O, S, D, T> Observer<'ob> for VecObserver<'ob, O, S, D>
Source§type InnerDepth = D
type InnerDepth = D
Type-level number of dereferences from
Head to the observed type.Source§fn observe(value: &'ob mut Self::Head) -> Self
fn observe(value: &'ob mut Self::Head) -> Self
Creates a new observer for the given value. Read more
Source§unsafe fn refresh(this: &mut Self, value: &mut Self::Head)
unsafe fn refresh(this: &mut Self, value: &mut Self::Head)
Refreshes the observer’s internal pointer after the observed value has moved. Read more
Source§unsafe fn force(this: &mut Self, value: &'ob mut Self::Head)
unsafe fn force(this: &mut Self, value: &'ob mut Self::Head)
Forces the observer into a valid state for the given value. Read more
Source§fn as_inner<'i>(
this: &Self,
) -> &'i mut <Self::Head as AsDeref<Self::InnerDepth>>::Target
fn as_inner<'i>( this: &Self, ) -> &'i mut <Self::Head as AsDeref<Self::InnerDepth>>::Target
Gets a mutable reference to the inner observed value without triggering observation. Read more
Source§fn track_inner<'i>(
this: &mut Self,
) -> &'i mut <Self::Head as AsDeref<Self::InnerDepth>>::Target
fn track_inner<'i>( this: &mut Self, ) -> &'i mut <Self::Head as AsDeref<Self::InnerDepth>>::Target
Gets a mutable reference to the inner observed value while triggering observation. Read more
Source§impl<'ob, O, S, D, T, U> PartialEq<U> for VecObserver<'ob, O, S, D>
impl<'ob, O, S, D, T, U> PartialEq<U> for VecObserver<'ob, O, S, D>
Source§impl<'ob, O, S, D, T, U> PartialOrd<U> for VecObserver<'ob, O, S, D>where
D: Unsigned,
S: AsDerefMut<D, Target = Vec<T>> + ?Sized,
O: Observer<'ob, InnerDepth = Zero, Head = T>,
Vec<T>: PartialOrd<U>,
impl<'ob, O, S, D, T, U> PartialOrd<U> for VecObserver<'ob, O, S, D>where
D: Unsigned,
S: AsDerefMut<D, Target = Vec<T>> + ?Sized,
O: Observer<'ob, InnerDepth = Zero, Head = T>,
Vec<T>: PartialOrd<U>,
Source§impl<'ob, O, S, D, T> SerializeObserver<'ob> for VecObserver<'ob, O, S, D>where
D: Unsigned,
S: AsDerefMut<D, Target = Vec<T>> + 'ob + ?Sized,
O: SerializeObserver<'ob, InnerDepth = Zero, Head = T>,
T: Serialize,
impl<'ob, O, S, D, T> SerializeObserver<'ob> for VecObserver<'ob, O, S, D>where
D: Unsigned,
S: AsDerefMut<D, Target = Vec<T>> + 'ob + ?Sized,
O: SerializeObserver<'ob, InnerDepth = Zero, Head = T>,
T: Serialize,
Auto Trait Implementations§
impl<'ob, O, S, D = Zero> !Freeze for VecObserver<'ob, O, S, D>
impl<'ob, O, S, D = Zero> !RefUnwindSafe for VecObserver<'ob, O, S, D>
impl<'ob, O, S, D = Zero> !Send for VecObserver<'ob, O, S, D>
impl<'ob, O, S, D = Zero> !Sync for VecObserver<'ob, O, S, D>
impl<'ob, O, S, D> Unpin for VecObserver<'ob, O, S, D>
impl<'ob, O, S, D = Zero> !UnwindSafe for VecObserver<'ob, O, S, D>
Blanket Implementations§
Source§impl<T, N> AsDerefCoinductive<Succ<N>> for T
impl<T, N> AsDerefCoinductive<Succ<N>> for T
Source§type Target = <<T as Deref>::Target as AsDerefCoinductive<N>>::Target
type Target = <<T as Deref>::Target as AsDerefCoinductive<N>>::Target
The target type after
N dereferences.Source§fn as_deref_coinductive(&self) -> &<T as AsDerefCoinductive<Succ<N>>>::Target
fn as_deref_coinductive(&self) -> &<T as AsDerefCoinductive<Succ<N>>>::Target
Dereferences self
N times.Source§impl<T> AsDerefCoinductive<Zero> for Twhere
T: ?Sized,
impl<T> AsDerefCoinductive<Zero> for Twhere
T: ?Sized,
Source§impl<T> AsDerefMut<Zero> for Twhere
T: ?Sized,
impl<T> AsDerefMut<Zero> for Twhere
T: ?Sized,
Source§fn as_deref_mut(&mut self) -> &mut T
fn as_deref_mut(&mut self) -> &mut T
Mutably dereferences self
N times.Source§impl<T, N> AsDerefMutCoinductive<Succ<N>> for T
impl<T, N> AsDerefMutCoinductive<Succ<N>> for T
Source§fn as_deref_mut_coinductive(
&mut self,
) -> &mut <T as AsDerefCoinductive<Succ<N>>>::Target
fn as_deref_mut_coinductive( &mut self, ) -> &mut <T as AsDerefCoinductive<Succ<N>>>::Target
Mutably dereferences self
N times.Source§impl<T> AsDerefMutCoinductive<Zero> for Twhere
T: ?Sized,
impl<T> AsDerefMutCoinductive<Zero> for Twhere
T: ?Sized,
Source§fn as_deref_mut_coinductive(&mut self) -> &mut T
fn as_deref_mut_coinductive(&mut self) -> &mut T
Mutably dereferences self
N times.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