Trait rin::ecs::streaming_iterator::StreamingIterator[][src]

pub trait StreamingIterator {
    type Item: ?Sized;
Show methods pub fn advance(&mut self);
pub fn get(&self) -> Option<&Self::Item>; pub fn next(&mut self) -> Option<&Self::Item> { ... }
pub fn size_hint(&self) -> (usize, Option<usize>) { ... }
pub fn all<F>(&mut self, f: F) -> bool
    where
        F: FnMut(&Self::Item) -> bool
, { ... }
pub fn any<F>(&mut self, f: F) -> bool
    where
        F: FnMut(&Self::Item) -> bool
, { ... }
pub fn by_ref(&mut self) -> &mut Self { ... }
pub fn chain<I>(self, other: I) -> Chain<Self, I>
    where
        I: StreamingIterator<Item = Self::Item>
, { ... }
pub fn cloned(self) -> Cloned<Self>

Notable traits for Cloned<I>

impl<I> Iterator for Cloned<I> where
    I: StreamingIterator,
    <I as StreamingIterator>::Item: Clone
type Item = <I as StreamingIterator>::Item;

    where
        Self::Item: Clone
, { ... }
pub fn count(self) -> usize { ... }
pub fn filter<F>(self, f: F) -> Filter<Self, F>
    where
        F: FnMut(&Self::Item) -> bool
, { ... }
pub fn filter_map<B, F>(self, f: F) -> FilterMap<Self, B, F>
    where
        F: FnMut(&Self::Item) -> Option<B>
, { ... }
pub fn flat_map<J, F>(self, f: F) -> FlatMap<Self, J, F>
    where
        F: FnMut(&Self::Item) -> J,
        J: StreamingIterator
, { ... }
pub fn filter_map_deref<B, F>(self, f: F) -> FilterMapDeref<Self, F>

Notable traits for FilterMapDeref<I, F>

impl<I, B, F> Iterator for FilterMapDeref<I, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> Option<B>,
    I: StreamingIterator
type Item = B;

    where
        F: FnMut(&Self::Item) -> Option<B>
, { ... }
pub fn find<F>(&mut self, f: F) -> Option<&Self::Item>
    where
        F: FnMut(&Self::Item) -> bool
, { ... }
pub fn fuse(self) -> Fuse<Self> { ... }
pub fn inspect<F>(self, f: F) -> Inspect<Self, F>
    where
        F: FnMut(&Self::Item)
, { ... }
pub fn map<B, F>(self, f: F) -> Map<Self, B, F>
    where
        F: FnMut(&Self::Item) -> B
, { ... }
pub fn map_deref<B, F>(self, f: F) -> MapDeref<Self, F>

Notable traits for MapDeref<I, F>

impl<I, B, F> Iterator for MapDeref<I, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> B,
    I: StreamingIterator
type Item = B;

    where
        F: FnMut(&Self::Item) -> B
, { ... }
pub fn map_ref<B, F>(self, f: F) -> MapRef<Self, F>
    where
        B: ?Sized,
        F: Fn(&Self::Item) -> &B
, { ... }
pub fn nth(&mut self, n: usize) -> Option<&Self::Item> { ... }
pub fn position<F>(&mut self, f: F) -> Option<usize>
    where
        F: FnMut(&Self::Item) -> bool
, { ... }
pub fn skip(self, n: usize) -> Skip<Self> { ... }
pub fn skip_while<F>(self, f: F) -> SkipWhile<Self, F>
    where
        F: FnMut(&Self::Item) -> bool
, { ... }
pub fn take(self, n: usize) -> Take<Self> { ... }
pub fn take_while<F>(self, f: F) -> TakeWhile<Self, F>
    where
        F: FnMut(&Self::Item) -> bool
, { ... }
pub fn rev(self) -> Rev<Self>
    where
        Self: DoubleEndedStreamingIterator
, { ... }
pub fn fold<B, F>(self, init: B, f: F) -> B
    where
        F: FnMut(B, &Self::Item) -> B
, { ... }
pub fn for_each<F>(self, f: F)
    where
        F: FnMut(&Self::Item)
, { ... }
}

An interface for dealing with streaming iterators.

Associated Types

type Item: ?Sized[src]

The type of the elements being iterated over.

Loading content...

Required methods

pub fn advance(&mut self)[src]

Advances the iterator to the next element.

Iterators start just before the first element, so this should be called before get.

The behavior of calling this method after the end of the iterator has been reached is unspecified.

pub fn get(&self) -> Option<&Self::Item>[src]

Returns a reference to the current element of the iterator.

The behavior of calling this method before advance has been called is unspecified.

Loading content...

Provided methods

pub fn next(&mut self) -> Option<&Self::Item>[src]

Advances the iterator and returns the next value.

The behavior of calling this method after the end of the iterator has been reached is unspecified.

The default implementation simply calls advance followed by get.

pub fn size_hint(&self) -> (usize, Option<usize>)[src]

Returns the bounds on the remaining length of the iterator.

pub fn all<F>(&mut self, f: F) -> bool where
    F: FnMut(&Self::Item) -> bool
[src]

Determines if all elements of the iterator satisfy a predicate.

pub fn any<F>(&mut self, f: F) -> bool where
    F: FnMut(&Self::Item) -> bool
[src]

Determines if any elements of the iterator satisfy a predicate.

pub fn by_ref(&mut self) -> &mut Self[src]

Borrows an iterator, rather than consuming it.

This is useful to allow the application of iterator adaptors while still retaining ownership of the original adaptor.

pub fn chain<I>(self, other: I) -> Chain<Self, I> where
    I: StreamingIterator<Item = Self::Item>, 
[src]

Consumes two iterators and returns a new iterator that iterates over both in sequence.

pub fn cloned(self) -> Cloned<Self>

Notable traits for Cloned<I>

impl<I> Iterator for Cloned<I> where
    I: StreamingIterator,
    <I as StreamingIterator>::Item: Clone
type Item = <I as StreamingIterator>::Item;
where
    Self::Item: Clone
[src]

Produces a normal, non-streaming, iterator by cloning the elements of this iterator.

pub fn count(self) -> usize[src]

Consumes the iterator, counting the number of remaining elements and returning it.

pub fn filter<F>(self, f: F) -> Filter<Self, F> where
    F: FnMut(&Self::Item) -> bool
[src]

Creates an iterator which uses a closure to determine if an element should be yielded.

pub fn filter_map<B, F>(self, f: F) -> FilterMap<Self, B, F> where
    F: FnMut(&Self::Item) -> Option<B>, 
[src]

Creates an iterator which both filters and maps by applying a closure to elements.

pub fn flat_map<J, F>(self, f: F) -> FlatMap<Self, J, F> where
    F: FnMut(&Self::Item) -> J,
    J: StreamingIterator
[src]

Creates an iterator which flattens iterators obtained by applying a closure to elements. Note that the returned iterators must be streaming iterators.

pub fn filter_map_deref<B, F>(self, f: F) -> FilterMapDeref<Self, F>

Notable traits for FilterMapDeref<I, F>

impl<I, B, F> Iterator for FilterMapDeref<I, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> Option<B>,
    I: StreamingIterator
type Item = B;
where
    F: FnMut(&Self::Item) -> Option<B>, 
[src]

Creates a regular, non-streaming iterator which both filters and maps by applying a closure to elements.

pub fn find<F>(&mut self, f: F) -> Option<&Self::Item> where
    F: FnMut(&Self::Item) -> bool
[src]

Returns the first element of the iterator that satisfies the predicate.

pub fn fuse(self) -> Fuse<Self>[src]

Creates an iterator which is “well behaved” at the beginning and end of iteration.

The behavior of calling get before iteration has been started, and of continuing to call advance after get has returned None is normally unspecified, but this guarantees that get will return None in both cases.

pub fn inspect<F>(self, f: F) -> Inspect<Self, F> where
    F: FnMut(&Self::Item), 
[src]

Call a closure on each element, passing the element on. The closure is called upon calls to advance or advance_back, and exactly once per element regardless of how many times (if any) get is called.

pub fn map<B, F>(self, f: F) -> Map<Self, B, F> where
    F: FnMut(&Self::Item) -> B, 
[src]

Creates an iterator which transforms elements of this iterator by passing them to a closure.

pub fn map_deref<B, F>(self, f: F) -> MapDeref<Self, F>

Notable traits for MapDeref<I, F>

impl<I, B, F> Iterator for MapDeref<I, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> B,
    I: StreamingIterator
type Item = B;
where
    F: FnMut(&Self::Item) -> B, 
[src]

Creates a regular, non-streaming iterator which transforms elements of this iterator by passing them to a closure.

pub fn map_ref<B, F>(self, f: F) -> MapRef<Self, F> where
    B: ?Sized,
    F: Fn(&Self::Item) -> &B, 
[src]

Creates an iterator which transforms elements of this iterator by passing them to a closure.

Unlike map, this method takes a closure that returns a reference into the original value.

pub fn nth(&mut self, n: usize) -> Option<&Self::Item>[src]

Consumes the first n elements of the iterator, returning the next one.

pub fn position<F>(&mut self, f: F) -> Option<usize> where
    F: FnMut(&Self::Item) -> bool
[src]

Returns the index of the first element of the iterator matching a predicate.

pub fn skip(self, n: usize) -> Skip<Self>[src]

Creates an iterator which skips the first n elements.

pub fn skip_while<F>(self, f: F) -> SkipWhile<Self, F> where
    F: FnMut(&Self::Item) -> bool
[src]

Creates an iterator that skips initial elements matching a predicate.

pub fn take(self, n: usize) -> Take<Self>[src]

Creates an iterator which only returns the first n elements.

pub fn take_while<F>(self, f: F) -> TakeWhile<Self, F> where
    F: FnMut(&Self::Item) -> bool
[src]

Creates an iterator which only returns initial elements matching a predicate.

pub fn rev(self) -> Rev<Self> where
    Self: DoubleEndedStreamingIterator
[src]

Creates an iterator which returns elemens in the opposite order.

pub fn fold<B, F>(self, init: B, f: F) -> B where
    F: FnMut(B, &Self::Item) -> B, 
[src]

Reduces the iterator’s elements to a single, final value.

pub fn for_each<F>(self, f: F) where
    F: FnMut(&Self::Item), 
[src]

Calls a closure on each element of an iterator.

Loading content...

Implementations on Foreign Types

impl<'a, I> StreamingIterator for &'a mut I where
    I: StreamingIterator + ?Sized
[src]

type Item = <I as StreamingIterator>::Item

Loading content...

Implementors

impl<'a, I, T> StreamingIterator for ConvertMut<'a, I, T> where
    T: ?Sized,
    I: Iterator<Item = &'a mut T>, 
[src]

type Item = T

impl<'a, I, T> StreamingIterator for ConvertRef<'a, I, T> where
    T: ?Sized,
    I: Iterator<Item = &'a T>, 
[src]

type Item = T

impl<A, B> StreamingIterator for Chain<A, B> where
    B: StreamingIterator<Item = <A as StreamingIterator>::Item>,
    A: StreamingIterator
[src]

type Item = <A as StreamingIterator>::Item

impl<I> StreamingIterator for Convert<I> where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

impl<I> StreamingIterator for Fuse<I> where
    I: StreamingIterator
[src]

type Item = <I as StreamingIterator>::Item

impl<I> StreamingIterator for Rev<I> where
    I: DoubleEndedStreamingIterator
[src]

type Item = <I as StreamingIterator>::Item

impl<I> StreamingIterator for Skip<I> where
    I: StreamingIterator
[src]

type Item = <I as StreamingIterator>::Item

impl<I> StreamingIterator for Take<I> where
    I: StreamingIterator
[src]

type Item = <I as StreamingIterator>::Item

impl<I, B, F> StreamingIterator for FilterMap<I, B, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> Option<B>,
    I: StreamingIterator
[src]

type Item = B

impl<I, B, F> StreamingIterator for Map<I, B, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> B,
    I: StreamingIterator
[src]

type Item = B

impl<I, B, F> StreamingIterator for MapRef<I, F> where
    B: ?Sized,
    F: Fn(&<I as StreamingIterator>::Item) -> &B,
    I: StreamingIterator
[src]

type Item = B

impl<I, F> StreamingIterator for Filter<I, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> bool,
    I: StreamingIterator
[src]

type Item = <I as StreamingIterator>::Item

impl<I, F> StreamingIterator for Inspect<I, F> where
    F: FnMut(&<I as StreamingIterator>::Item),
    I: StreamingIterator
[src]

type Item = <I as StreamingIterator>::Item

impl<I, F> StreamingIterator for SkipWhile<I, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> bool,
    I: StreamingIterator
[src]

type Item = <I as StreamingIterator>::Item

impl<I, F> StreamingIterator for TakeWhile<I, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> bool,
    I: StreamingIterator
[src]

type Item = <I as StreamingIterator>::Item

impl<I, J, F> StreamingIterator for FlatMap<I, J, F> where
    F: FnMut(&<I as StreamingIterator>::Item) -> J,
    I: StreamingIterator,
    J: StreamingIterator
[src]

type Item = <J as StreamingIterator>::Item

impl<T> StreamingIterator for Empty<T>[src]

type Item = T

impl<T> StreamingIterator for Once<T>[src]

type Item = T

impl<T> StreamingIterator for Repeat<T>[src]

type Item = T

impl<T, F> StreamingIterator for FromFn<T, F> where
    F: FnMut() -> Option<T>, 
[src]

type Item = T

impl<T, F> StreamingIterator for OnceWith<T, F> where
    F: FnOnce() -> T, 
[src]

type Item = T

impl<T, F> StreamingIterator for RepeatWith<T, F> where
    F: FnMut() -> T, 
[src]

type Item = T

impl<T, F> StreamingIterator for Successors<T, F> where
    F: FnMut(T) -> Option<T>, 
[src]

type Item = T

Loading content...