TrustedRandomAccess

Trait TrustedRandomAccess 

Source
pub unsafe trait TrustedRandomAccess: ExactSizeIterator {
    // Required method
    unsafe fn get_unchecked(&mut self, index: usize) -> Self::Item;

    // Provided method
    fn may_have_side_effect() -> bool { ... }
}
Expand description

An iterator whose items are random-accessible efficiently

§Safety

The iterator’s .len() and size_hint() must be exact. .len() must be cheap to call.

.get_unchecked() must return distinct mutable references for distinct indices (if applicable), and must return a valid reference if index is in 0..self.len().

Required Methods§

Source

unsafe fn get_unchecked(&mut self, index: usize) -> Self::Item

Gets the element at the given index from this iterator.

§Safety

The index must not exceed the number of items produced by this iterator to avoid undefined behaviour.

Provided Methods§

Source

fn may_have_side_effect() -> bool

Returns true if getting an iterator element may have side effects. Remember to take inner iterators into account.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§