[][src]Struct every_range::EveryRangeIter

pub struct EveryRangeIter<I> where
    I: Iterator<Item = Range<usize>>, 
{ /* fields omitted */ }

EveryRangeIter iterates over Ranges and "fill in" missing ranges, i.e. the gap between two consecutive ranges. The original ranges and the generated ones, can be distinguished by the Included and Excluded enum variants.

Panics

Currently, EveryRangeIter resorts to panicking in the following conditions. EveryRangeIter might be made more lenient in the future, if the behavior can be better consistently defined without panicking.

  • Panics if Ranges are received out of order.
  • Panics if Ranges overlap.
  • Panics if any Range exceeds the end of the EveryRangeIter.

Methods

impl<I> EveryRangeIter<I> where
    I: Iterator<Item = Range<usize>>, 
[src]

pub fn new(iter: I, end: usize) -> Self[src]

Create an EveryRangeIter with an iter and end, which represents the "end point". Thereby, if end is greater than the last range.end then an ending Excluded range is generated, otherwise no additional ending range is generated.

Trait Implementations

impl<I> FusedIterator for EveryRangeIter<I> where
    I: Iterator<Item = Range<usize>>, 
[src]

impl<I> Iterator for EveryRangeIter<I> where
    I: Iterator<Item = Range<usize>>, 
[src]

type Item = (EveryRangeKind, Range<usize>)

The type of the elements being iterated over.

Auto Trait Implementations

impl<I> RefUnwindSafe for EveryRangeIter<I> where
    I: RefUnwindSafe

impl<I> Send for EveryRangeIter<I> where
    I: Send

impl<I> Sync for EveryRangeIter<I> where
    I: Sync

impl<I> Unpin for EveryRangeIter<I> where
    I: Unpin

impl<I> UnwindSafe for EveryRangeIter<I> where
    I: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.