use core::iter::{Skip, Take}; use core::ops::{Range, RangeFrom, RangeFull, RangeInclusive, RangeTo, RangeToInclusive};
#[cfg(doc)] usecrate::Itertools;
mod private_iter_index { use core::ops;
pubtrait Sealed {}
impl Sealed for ops::Range<usize> {} impl Sealed for ops::RangeInclusive<usize> {} impl Sealed for ops::RangeTo<usize> {} impl Sealed for ops::RangeToInclusive<usize> {} impl Sealed for ops::RangeFrom<usize> {} impl Sealed for ops::RangeFull {}
}
/// Used by [`Itertools::get`] to know which iterator /// to turn different ranges into. pubtrait IteratorIndex<I>: private_iter_index::Sealed where
I: Iterator,
{ /// The type returned for this type of index. type Output: Iterator<Item = I::Item>;
/// Returns an adapted iterator for the current index. /// /// Prefer calling [`Itertools::get`] instead /// of calling this directly. fn index(self, from: I) -> Self::Output;
}
impl<I> IteratorIndex<I> for Range<usize> where
I: Iterator,
{ type Output = Skip<Take<I>>;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.