typed-index-collections 3.2.3

Typed index version of Rust slice and Vec containers
Documentation
use core::{iter, ops};

use crate::TiSlice;

/// An iterator over all key-value pairs.
///
/// This struct is created by the [`TiSlice::iter_enumerated`],
/// [`TiSlice::iter_mut_enumerated`] and [`TiVec::drain_enumerated`] methods.
///
/// [`TiSlice::iter_enumerated`]: struct.TiSlice.html#method.iter_enumerated
/// [`TiSlice::iter_mut_enumerated`]: struct.TiSlice.html#method.iter_mut_enumerated
/// [`TiVec::drain_enumerated`]: struct.TiVec.html#method.drain_enumerated
pub type TiEnumerated<I, K, V> = iter::Map<iter::Enumerate<I>, fn((usize, V)) -> (K, V)>;

/// An iterator over all keys.
///
/// This struct is created by the [`TiSlice::keys`] method.
///
/// [`TiSlice::keys`]: struct.TiSlice.html#method.keys
pub type TiSliceKeys<K> = iter::Map<ops::Range<usize>, fn(usize) -> K>;

/// An iterator wrapper for iterators that yields [`TiSlice`] subslice
/// references.
///
/// [`TiSlice`]: struct.TiSlice.html
pub type TiSliceRefMap<Iter, K, V> = iter::Map<Iter, fn(&[V]) -> &TiSlice<K, V>>;

/// An iterator wrapper for iterators that yields [`TiSlice`] subslice mutable
/// references.
///
/// [`TiSlice`]: struct.TiSlice.html
pub type TiSliceMutMap<Iter, K, V> = iter::Map<Iter, fn(&mut [V]) -> &mut TiSlice<K, V>>;