Trait TrustedRandomAccessNoCoerce
pub unsafe trait TrustedRandomAccessNoCoerce: Sized
Like TrustedRandomAccess but without any of the requirements / guarantees around
coercions to supertypes after __iterator_get_unchecked (they aren’t allowed here!), and
without the requirement that subtypes / supertypes implement TrustedRandomAccessNoCoerce.
This trait was created in PR #85874 to fix soundness issue #85873 without performance regressions.
It is subject to change as we might want to build a more generally useful (for performance
optimizations) and more sophisticated trait or trait hierarchy that replaces or extends
TrustedRandomAccess and TrustedRandomAccessNoCoerce.
Associated Constants
const MAY_HAVE_SIDE_EFFECT: bool;trueif getting an iterator element may have side effects. Remember to take inner iterators into account.
Provided Methods
fn size(&self) -> usize where Self: Iterator,
Implementors
impl TrustedRandomAccessNoCoerce for Bytes<'_>impl TrustedRandomAccessNoCoerce for CaseMappingIterimpl TrustedRandomAccessNoCoerce for Range<NonZero<u16>>impl TrustedRandomAccessNoCoerce for Range<NonZero<u32>>impl TrustedRandomAccessNoCoerce for Range<NonZero<u64>>impl TrustedRandomAccessNoCoerce for Range<NonZero<u8>>impl TrustedRandomAccessNoCoerce for Range<NonZero<usize>>impl TrustedRandomAccessNoCoerce for Range<i16>impl TrustedRandomAccessNoCoerce for Range<i32>impl TrustedRandomAccessNoCoerce for Range<i64>impl TrustedRandomAccessNoCoerce for Range<i8>impl TrustedRandomAccessNoCoerce for Range<isize>impl TrustedRandomAccessNoCoerce for Range<u16>impl TrustedRandomAccessNoCoerce for Range<u32>impl TrustedRandomAccessNoCoerce for Range<u64>impl TrustedRandomAccessNoCoerce for Range<u8>impl TrustedRandomAccessNoCoerce for Range<usize>impl TrustedRandomAccessNoCoerce for RangeIter<i16>impl TrustedRandomAccessNoCoerce for RangeIter<i32>impl TrustedRandomAccessNoCoerce for RangeIter<i64>impl TrustedRandomAccessNoCoerce for RangeIter<i8>impl TrustedRandomAccessNoCoerce for RangeIter<isize>impl TrustedRandomAccessNoCoerce for RangeIter<u16>impl TrustedRandomAccessNoCoerce for RangeIter<u32>impl TrustedRandomAccessNoCoerce for RangeIter<u64>impl TrustedRandomAccessNoCoerce for RangeIter<u8>impl TrustedRandomAccessNoCoerce for RangeIter<usize>impl TrustedRandomAccessNoCoerce for ToCasefoldimpl TrustedRandomAccessNoCoerce for ToLowercaseimpl TrustedRandomAccessNoCoerce for ToTitlecaseimpl TrustedRandomAccessNoCoerce for ToUppercaseimpl<'a, T> TrustedRandomAccessNoCoerce for Chunks<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for ChunksExact<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for ChunksExactMut<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for ChunksMut<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for Iter<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for IterMut<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for RChunks<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for RChunksExact<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for RChunksExactMut<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for RChunksMut<'a, T>impl<'a, T> TrustedRandomAccessNoCoerce for Windows<'a, T>impl<A, B> TrustedRandomAccessNoCoerce for Zip<A, B> where A: TrustedRandomAccessNoCoerce, B: TrustedRandomAccessNoCoerce,impl<I> TrustedRandomAccessNoCoerce for Cloned<I> where I: TrustedRandomAccessNoCoerce,impl<I> TrustedRandomAccessNoCoerce for Copied<I> where I: TrustedRandomAccessNoCoerce,impl<I> TrustedRandomAccessNoCoerce for Enumerate<I> where I: TrustedRandomAccessNoCoerce,impl<I> TrustedRandomAccessNoCoerce for Fuse<I> where I: TrustedRandomAccessNoCoerce,impl<I> TrustedRandomAccessNoCoerce for Skip<I> where I: TrustedRandomAccessNoCoerce,impl<I, F> TrustedRandomAccessNoCoerce for Map<I, F> where I: TrustedRandomAccessNoCoerce,impl<T, const N: usize> TrustedRandomAccessNoCoerce for ArrayWindows<'_, T, N>impl<T, const N: usize> TrustedRandomAccessNoCoerce for IntoIter<T, N> where T: NonDrop,