pub struct StmtInfos {
pub infos: IndexVec<StmtInfoIdx, StmtInfo>,
/* private fields */
}Fields§
§infos: IndexVec<StmtInfoIdx, StmtInfo>The first StmtInfo is used to represent the statement that declares and constructs Module Namespace Object
Implementations§
Source§impl StmtInfos
impl StmtInfos
pub const NAMESPACE_STMT_IDX: StmtInfoIdx
pub fn new() -> Self
pub fn get(&self, id: StmtInfoIdx) -> &StmtInfo
pub fn get_mut(&mut self, id: StmtInfoIdx) -> &mut StmtInfo
pub fn add_stmt_info(&mut self, info: StmtInfo) -> StmtInfoIdx
Sourcepub fn declare_symbol_for_stmt(
&mut self,
id: StmtInfoIdx,
symbol_ref: TaggedSymbolRef,
)
pub fn declare_symbol_for_stmt( &mut self, id: StmtInfoIdx, symbol_ref: TaggedSymbolRef, )
§Panic
Caller should guarantee the stmt is included in stmts before, or it will panic.
Sourcepub fn reference_stmt_for_symbol_id(
&mut self,
id: StmtInfoIdx,
symbol_ref: SymbolRef,
)
pub fn reference_stmt_for_symbol_id( &mut self, id: StmtInfoIdx, symbol_ref: SymbolRef, )
§Panic
Caller should guarantee the stmt is included in stmts before, or it will panic.
pub fn get_namespace_stmt_info(&self) -> &StmtInfo
pub fn replace_namespace_stmt_info(&mut self, info: StmtInfo) -> StmtInfoIdx
pub fn declared_stmts_by_symbol(&self, symbol_ref: &SymbolRef) -> &[StmtInfoIdx]
pub fn iter_enumerated_without_namespace_stmt( &self, ) -> impl Iterator<Item = (StmtInfoIdx, &StmtInfo)>
pub fn symbol_ref_to_referenced_stmt_idx( &self, ) -> &FxHashMap<SymbolRef, Vec<StmtInfoIdx>>
Methods from Deref<Target = IndexVec<StmtInfoIdx, StmtInfo>>§
Sourcepub fn splice<R, It>(
&mut self,
range: R,
replace_with: It,
) -> Splice<'_, <It as IntoIterator>::IntoIter>where
It: IntoIterator<Item = T>,
R: IdxRangeBounds<I>,
pub fn splice<R, It>(
&mut self,
range: R,
replace_with: It,
) -> Splice<'_, <It as IntoIterator>::IntoIter>where
It: IntoIterator<Item = T>,
R: IdxRangeBounds<I>,
Creates a splicing iterator that replaces the specified range in the
vector with the given replace_with iterator and yields the removed
items. See Vec::splice
Sourcepub fn drain_enumerated<R>(
&mut self,
range: R,
) -> Map<Enumerate<Drain<'_, T>>, fn((usize, T)) -> (I, T)>where
R: IdxRangeBounds<I>,
pub fn drain_enumerated<R>(
&mut self,
range: R,
) -> Map<Enumerate<Drain<'_, T>>, fn((usize, T)) -> (I, T)>where
R: IdxRangeBounds<I>,
Similar to self.drain(r).enumerate() but with indices of I and not
usize.
Sourcepub fn as_raw_slice(&self) -> &[T]
pub fn as_raw_slice(&self) -> &[T]
Get a the storage as a &[T]
Sourcepub fn as_raw_slice_mut(&mut self) -> &mut [T]
pub fn as_raw_slice_mut(&mut self) -> &mut [T]
Get a the storage as a &mut [T]
Sourcepub fn as_mut_vec(&mut self) -> &mut Vec<T>
pub fn as_mut_vec(&mut self) -> &mut Vec<T>
Equivalent to accessing our raw field mutably, but as a function, if
that’s what you’d prefer.
Sourcepub fn drain<R>(&mut self, range: R) -> Drain<'_, T>where
R: IdxRangeBounds<I>,
pub fn drain<R>(&mut self, range: R) -> Drain<'_, T>where
R: IdxRangeBounds<I>,
Return an iterator that removes the items from the requested range. See
Vec::drain.
See also IndexVec::drain_enumerated, which gives you indices (of the
correct type) as you iterate.
Sourcepub fn shrink_to_fit(&mut self)
pub fn shrink_to_fit(&mut self)
Shrinks the capacity of the vector as much as possible.
Sourcepub fn shrink_to(&mut self, min_capacity: usize)
pub fn shrink_to(&mut self, min_capacity: usize)
Shrinks the capacity of the vector with a lower bound.
Sourcepub fn truncate(&mut self, a: usize)
pub fn truncate(&mut self, a: usize)
Shortens the vector, keeping the first len elements and dropping
the rest. See Vec::truncate
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clear our vector. See Vec::clear.
Sourcepub fn reserve(&mut self, c: usize)
pub fn reserve(&mut self, c: usize)
Reserve capacity for c more elements. See Vec::reserve
Sourcepub fn get<J>(&self, index: J) -> Option<&<J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
pub fn get<J>(&self, index: J) -> Option<&<J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
Get a ref to the item at the provided index, or None for out of bounds.
Sourcepub fn get_mut<J>(
&mut self,
index: J,
) -> Option<&mut <J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
pub fn get_mut<J>(
&mut self,
index: J,
) -> Option<&mut <J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
Get a mut ref to the item at the provided index, or None for out of bounds
Sourcepub fn resize(&mut self, new_len: usize, value: T)where
T: Clone,
pub fn resize(&mut self, new_len: usize, value: T)where
T: Clone,
Resize ourselves in-place to new_len. See Vec::resize.
Sourcepub fn resize_with<F>(&mut self, new_len: usize, f: F)where
F: FnMut() -> T,
pub fn resize_with<F>(&mut self, new_len: usize, f: F)where
F: FnMut() -> T,
Resize ourselves in-place to new_len. See Vec::resize_with.
Sourcepub fn append(&mut self, other: &mut IndexVec<I, T>)
pub fn append(&mut self, other: &mut IndexVec<I, T>)
Moves all the elements of other into Self, leaving other empty.
See Vec::append.
Sourcepub fn split_off(&mut self, idx: I) -> IndexVec<I, T>
pub fn split_off(&mut self, idx: I) -> IndexVec<I, T>
Splits the collection into two at the given index. See
Vec::split_off.
Sourcepub fn remove(&mut self, index: I) -> T
pub fn remove(&mut self, index: I) -> T
Remove the item at index. See Vec::remove.
Sourcepub fn swap_remove(&mut self, index: I) -> T
pub fn swap_remove(&mut self, index: I) -> T
Remove the item at index without maintaining order. See
Vec::swap_remove.
Sourcepub fn insert(&mut self, index: I, element: T)
pub fn insert(&mut self, index: I, element: T)
Insert an item at index. See Vec::insert.
Sourcepub fn extend_from_slice(&mut self, other: &IndexSlice<I, [T]>)where
T: Clone,
pub fn extend_from_slice(&mut self, other: &IndexSlice<I, [T]>)where
T: Clone,
Append all items in the slice to the end of our vector.
Sourcepub fn dedup_by_key<F, K>(&mut self, key: F)
pub fn dedup_by_key<F, K>(&mut self, key: F)
Forwards to the Vec::dedup_by_key implementation.
Sourcepub fn as_slice(&self) -> &IndexSlice<I, [T]>
pub fn as_slice(&self) -> &IndexSlice<I, [T]>
Get a IndexSlice over this vector. See as_raw_slice for converting to
a &[T] (or access self.raw).
Sourcepub fn as_mut_slice(&mut self) -> &mut IndexSlice<I, [T]>
pub fn as_mut_slice(&mut self) -> &mut IndexSlice<I, [T]>
Get a mutable IndexSlice over this vector. See as_raw_slice_mut for
converting to a &mut [T] (or access self.raw).
Methods from Deref<Target = IndexSlice<I, [A]>>§
Sourcepub fn as_raw_slice_mut(&mut self) -> &mut [T]
pub fn as_raw_slice_mut(&mut self) -> &mut [T]
Returns the underlying slice.
Sourcepub fn as_raw_slice(&self) -> &[T]
pub fn as_raw_slice(&self) -> &[T]
Returns the underlying slice.
Sourcepub fn as_mut_ptr(&mut self) -> *mut T
pub fn as_mut_ptr(&mut self) -> *mut T
Returns an unsafe mutable pointer to the slice’s buffer.
Sourcepub fn iter(&self) -> Iter<'_, T>
pub fn iter(&self) -> Iter<'_, T>
Get a iterator over reverences to our values.
See also IndexSlice::iter_enumerated, which gives you indices (of the
correct type) as you iterate.
Sourcepub fn iter_mut(&mut self) -> IterMut<'_, T>
pub fn iter_mut(&mut self) -> IterMut<'_, T>
Get a iterator over mut reverences to our values.
See also IndexSlice::iter_mut_enumerated, which gives you indices (of
the correct type) as you iterate.
Sourcepub fn iter_enumerated(
&self,
) -> Map<Enumerate<Iter<'_, T>>, fn((usize, &T)) -> (I, &T)>
pub fn iter_enumerated( &self, ) -> Map<Enumerate<Iter<'_, T>>, fn((usize, &T)) -> (I, &T)>
Similar to self.iter().enumerate() but with indices of I and not
usize.
Sourcepub fn indices(&self) -> Map<Range<usize>, fn(usize) -> I>
pub fn indices(&self) -> Map<Range<usize>, fn(usize) -> I>
Get an iterator over all our indices.
Sourcepub fn iter_mut_enumerated(
&mut self,
) -> Map<Enumerate<IterMut<'_, T>>, fn((usize, &mut T)) -> (I, &mut T)>
pub fn iter_mut_enumerated( &mut self, ) -> Map<Enumerate<IterMut<'_, T>>, fn((usize, &mut T)) -> (I, &mut T)>
Similar to self.iter_mut().enumerate() but with indices of I and not
usize.
Sourcepub fn sort_by_key<F, K>(&mut self, f: F)
pub fn sort_by_key<F, K>(&mut self, f: F)
Forwards to the slice’s sort_by_key implementation.
Sourcepub fn sort_by_cached_key<F, K>(&mut self, f: F)
pub fn sort_by_cached_key<F, K>(&mut self, f: F)
Forwards to the slice’s sort_by_cached_key implementation.
Sourcepub fn sort_unstable(&mut self)where
T: Ord,
pub fn sort_unstable(&mut self)where
T: Ord,
Forwards to the slice’s sort_unstable implementation.
Sourcepub fn sort_unstable_by<F>(&mut self, compare: F)
pub fn sort_unstable_by<F>(&mut self, compare: F)
Forwards to the slice’s sort_unstable_by implementation.
Sourcepub fn sort_unstable_by_key<F, K>(&mut self, f: F)
pub fn sort_unstable_by_key<F, K>(&mut self, f: F)
Forwards to the slice’s sort_unstable_by_key implementation.
Sourcepub fn ends_with<S>(&self, needle: &S) -> bool
pub fn ends_with<S>(&self, needle: &S) -> bool
Forwards to the slice’s ends_with implementation.
Sourcepub fn starts_with<S>(&self, needle: &S) -> bool
pub fn starts_with<S>(&self, needle: &S) -> bool
Forwards to the slice’s starts_with implementation.
Sourcepub fn contains(&self, x: &T) -> boolwhere
T: PartialEq,
pub fn contains(&self, x: &T) -> boolwhere
T: PartialEq,
Forwards to the slice’s contains implementation.
Sourcepub fn binary_search(&self, value: &T) -> Result<I, I>where
T: Ord,
pub fn binary_search(&self, value: &T) -> Result<I, I>where
T: Ord,
Call slice::binary_search converting the indices it gives us back as
needed.
§Errors
Sourcepub fn binary_search_by<'a, F>(&'a self, f: F) -> Result<I, I>
pub fn binary_search_by<'a, F>(&'a self, f: F) -> Result<I, I>
Binary searches this sorted vec with a comparator function, converting the indices it gives us back to our Idx type.
§Errors
Sourcepub fn copy_from_slice(&mut self, src: &IndexSlice<I, [T]>)where
T: Copy,
pub fn copy_from_slice(&mut self, src: &IndexSlice<I, [T]>)where
T: Copy,
Copies all elements from src into self, using a memcpy.
Sourcepub fn clone_from_slice(&mut self, src: &IndexSlice<I, [T]>)where
T: Clone,
pub fn clone_from_slice(&mut self, src: &IndexSlice<I, [T]>)where
T: Clone,
Copies the elements from src into self.
Sourcepub fn swap_with_slice(&mut self, other: &mut IndexSlice<I, [T]>)
pub fn swap_with_slice(&mut self, other: &mut IndexSlice<I, [T]>)
Swaps all elements in self with those in other.
Sourcepub fn binary_search_by_key<'a, B, F>(&'a self, b: &B, f: F) -> Result<I, I>
pub fn binary_search_by_key<'a, B, F>(&'a self, b: &B, f: F) -> Result<I, I>
Binary searches this sorted vec with a key extraction function, converting the indices it gives us back to our Idx type.
§Errors
Sourcepub fn position<F>(&self, f: F) -> Option<I>
pub fn position<F>(&self, f: F) -> Option<I>
Searches for an element in an iterator, returning its index. This is
equivalent to Iterator::position, but returns I and not usize.
Sourcepub fn rposition<F>(&self, f: F) -> Option<I>
pub fn rposition<F>(&self, f: F) -> Option<I>
Searches for an element in an iterator from the right, returning its
index. This is equivalent to Iterator::position, but returns I and
not usize.
Sourcepub fn split_at(&self, a: I) -> (&IndexSlice<I, [T]>, &IndexSlice<I, [T]>)
pub fn split_at(&self, a: I) -> (&IndexSlice<I, [T]>, &IndexSlice<I, [T]>)
Divides our slice into two at an index.
Sourcepub fn split_at_mut(
&mut self,
a: I,
) -> (&mut IndexSlice<I, [T]>, &mut IndexSlice<I, [T]>)
pub fn split_at_mut( &mut self, a: I, ) -> (&mut IndexSlice<I, [T]>, &mut IndexSlice<I, [T]>)
Divides our slice into two at an index.
Sourcepub fn rotate_left(&mut self, mid: I)
pub fn rotate_left(&mut self, mid: I)
Rotates our data in-place such that the first mid elements of the
slice move to the end while the last self.len() - mid elements move to
the front
Sourcepub fn rotate_right(&mut self, k: I)
pub fn rotate_right(&mut self, k: I)
Rotates our data in-place such that the first self.len() - k elements
of the slice move to the end while the last k elements move to the
front
Sourcepub fn first_mut(&mut self) -> Option<&mut T>
pub fn first_mut(&mut self) -> Option<&mut T>
Return the the first element, if we are not empty.
Sourcepub fn copy_within<R>(&mut self, src: R, dst: I)where
R: IdxRangeBounds<I>,
T: Copy,
pub fn copy_within<R>(&mut self, src: R, dst: I)where
R: IdxRangeBounds<I>,
T: Copy,
Copies elements from one part of the slice to another part of itself, using a memmove.
Sourcepub fn get<J>(&self, index: J) -> Option<&<J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
pub fn get<J>(&self, index: J) -> Option<&<J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
Get a ref to the item at the provided index, or None for out of bounds.
Sourcepub fn get_mut<J>(
&mut self,
index: J,
) -> Option<&mut <J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
pub fn get_mut<J>(
&mut self,
index: J,
) -> Option<&mut <J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
Get a mut ref to the item at the provided index, or None for out of bounds
Sourcepub fn windows(
&self,
size: usize,
) -> Map<Windows<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn windows( &self, size: usize, ) -> Map<Windows<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s windows iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn chunks(
&self,
size: usize,
) -> Map<Chunks<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn chunks( &self, size: usize, ) -> Map<Chunks<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s chunks iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn chunks_mut(
&mut self,
size: usize,
) -> Map<ChunksMut<'_, T>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn chunks_mut( &mut self, size: usize, ) -> Map<ChunksMut<'_, T>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
Wraps the underlying slice’s chunks_mut iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn chunks_exact(
&self,
chunk_size: usize,
) -> Map<ChunksExact<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn chunks_exact( &self, chunk_size: usize, ) -> Map<ChunksExact<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s chunks_exact iterator with one that
yields IndexSlices with the correct index type.
Sourcepub fn chunks_exact_mut(
&mut self,
chunk_size: usize,
) -> Map<ChunksExactMut<'_, T>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn chunks_exact_mut( &mut self, chunk_size: usize, ) -> Map<ChunksExactMut<'_, T>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
Wraps the underlying slice’s chunks_exact_mut iterator with one that
yields IndexSlices with the correct index type.
Sourcepub fn rchunks(
&self,
size: usize,
) -> Map<RChunks<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn rchunks( &self, size: usize, ) -> Map<RChunks<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s rchunks iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn rchunks_mut(
&mut self,
size: usize,
) -> Map<RChunksMut<'_, T>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn rchunks_mut( &mut self, size: usize, ) -> Map<RChunksMut<'_, T>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
Wraps the underlying slice’s rchunks_mut iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn rchunks_exact(
&self,
chunk_size: usize,
) -> Map<RChunksExact<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn rchunks_exact( &self, chunk_size: usize, ) -> Map<RChunksExact<'_, T>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s rchunks_exact iterator with one that
yields IndexSlices with the correct index type.
Sourcepub fn rchunks_exact_mut(
&mut self,
chunk_size: usize,
) -> Map<RChunksExactMut<'_, T>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn rchunks_exact_mut( &mut self, chunk_size: usize, ) -> Map<RChunksExactMut<'_, T>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
Wraps the underlying slice’s rchunks_exact_mut iterator with one that
yields IndexSlices with the correct index type.
Sourcepub fn split<F>(
&self,
f: F,
) -> Map<Split<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn split<F>( &self, f: F, ) -> Map<Split<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s split iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn split_mut<F>(
&mut self,
f: F,
) -> Map<SplitMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn split_mut<F>( &mut self, f: F, ) -> Map<SplitMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
Wraps the underlying slice’s split_mut iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn rsplit<F>(
&self,
f: F,
) -> Map<RSplit<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn rsplit<F>( &self, f: F, ) -> Map<RSplit<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s rsplit iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn rsplit_mut<F>(
&mut self,
f: F,
) -> Map<RSplitMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn rsplit_mut<F>( &mut self, f: F, ) -> Map<RSplitMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
Wraps the underlying slice’s rsplit_mut iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn splitn<F>(
&self,
n: usize,
f: F,
) -> Map<SplitN<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn splitn<F>( &self, n: usize, f: F, ) -> Map<SplitN<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s splitn iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn splitn_mut<F>(
&mut self,
n: usize,
f: F,
) -> Map<SplitNMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn splitn_mut<F>( &mut self, n: usize, f: F, ) -> Map<SplitNMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
Wraps the underlying slice’s splitn_mut iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn rsplitn<F>(
&self,
n: usize,
f: F,
) -> Map<RSplitN<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn rsplitn<F>( &self, n: usize, f: F, ) -> Map<RSplitN<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s rsplitn iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn rsplitn_mut<F>(
&mut self,
n: usize,
f: F,
) -> Map<RSplitNMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn rsplitn_mut<F>( &mut self, n: usize, f: F, ) -> Map<RSplitNMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
Wraps the underlying slice’s rsplitn_mut iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn split_first(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
pub fn split_first(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
Returns the first and all the rest of the elements of the slice, or None if it is empty.
Sourcepub fn split_first_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
pub fn split_first_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
Returns the first and all the rest of the elements of the slice, or None if it is empty.
Sourcepub fn split_last(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
pub fn split_last(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
Returns the last and all the rest of the elements of the slice, or None if it is empty.
Sourcepub fn split_last_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
pub fn split_last_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
Returns the last and all the rest of the elements of the slice, or None if it is empty.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StmtInfos
impl RefUnwindSafe for StmtInfos
impl Send for StmtInfos
impl Sync for StmtInfos
impl Unpin for StmtInfos
impl UnwindSafe for StmtInfos
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read moreSource§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Source§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Source§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Source§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);