[][src]Trait generic_array::functional::FunctionalSequence

pub unsafe trait FunctionalSequence<T>: GenericSequence<T> {
    fn map<U, F>(self, f: F) -> MappedSequence<Self, T, U>
    where
        Self: MappedGenericSequence<T, U>,
        Self::Length: ArrayLength<U>,
        F: FnMut(Self::Item) -> U
, { ... }
fn zip<B, Rhs, U, F>(self, rhs: Rhs, f: F) -> MappedSequence<Self, T, U>
    where
        Self: MappedGenericSequence<T, U>,
        Rhs: MappedGenericSequence<B, U, Mapped = MappedSequence<Self, T, U>>,
        Self::Length: ArrayLength<B> + ArrayLength<U>,
        Rhs: GenericSequence<B, Length = Self::Length>,
        F: FnMut(Self::Item, Rhs::Item) -> U
, { ... }
fn fold<U, F>(self, init: U, f: F) -> U
    where
        F: FnMut(U, Self::Item) -> U
, { ... } }

Defines functional programming methods for generic sequences

Provided methods

fn map<U, F>(self, f: F) -> MappedSequence<Self, T, U> where
    Self: MappedGenericSequence<T, U>,
    Self::Length: ArrayLength<U>,
    F: FnMut(Self::Item) -> U, 

Maps a GenericSequence to another GenericSequence.

If the mapping function panics, any already initialized elements in the new sequence will be dropped, AND any unused elements in the source sequence will also be dropped.

fn zip<B, Rhs, U, F>(self, rhs: Rhs, f: F) -> MappedSequence<Self, T, U> where
    Self: MappedGenericSequence<T, U>,
    Rhs: MappedGenericSequence<B, U, Mapped = MappedSequence<Self, T, U>>,
    Self::Length: ArrayLength<B> + ArrayLength<U>,
    Rhs: GenericSequence<B, Length = Self::Length>,
    F: FnMut(Self::Item, Rhs::Item) -> U, 

Combines two GenericSequence instances and iterates through both of them, initializing a new GenericSequence with the result of the zipped mapping function.

If the mapping function panics, any already initialized elements in the new sequence will be dropped, AND any unused elements in the source sequences will also be dropped.

fn fold<U, F>(self, init: U, f: F) -> U where
    F: FnMut(U, Self::Item) -> U, 

Folds (or reduces) a sequence of data into a single value.

If the fold function panics, any unused elements will be dropped.

Loading content...

Implementors

impl<'a, T, S: GenericSequence<T>> FunctionalSequence<T> for &'a S where
    &'a S: GenericSequence<T>, 
[src]

fn map<U, F>(self, f: F) -> MappedSequence<Self, T, U> where
    Self: MappedGenericSequence<T, U>,
    Self::Length: ArrayLength<U>,
    F: FnMut(Self::Item) -> U, 
[src]

fn zip<B, Rhs, U, F>(self, rhs: Rhs, f: F) -> MappedSequence<Self, T, U> where
    Self: MappedGenericSequence<T, U>,
    Rhs: MappedGenericSequence<B, U, Mapped = MappedSequence<Self, T, U>>,
    Self::Length: ArrayLength<B> + ArrayLength<U>,
    Rhs: GenericSequence<B, Length = Self::Length>,
    F: FnMut(Self::Item, Rhs::Item) -> U, 
[src]

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

impl<'a, T, S: GenericSequence<T>> FunctionalSequence<T> for &'a mut S where
    &'a mut S: GenericSequence<T>, 
[src]

fn map<U, F>(self, f: F) -> MappedSequence<Self, T, U> where
    Self: MappedGenericSequence<T, U>,
    Self::Length: ArrayLength<U>,
    F: FnMut(Self::Item) -> U, 
[src]

fn zip<B, Rhs, U, F>(self, rhs: Rhs, f: F) -> MappedSequence<Self, T, U> where
    Self: MappedGenericSequence<T, U>,
    Rhs: MappedGenericSequence<B, U, Mapped = MappedSequence<Self, T, U>>,
    Self::Length: ArrayLength<B> + ArrayLength<U>,
    Rhs: GenericSequence<B, Length = Self::Length>,
    F: FnMut(Self::Item, Rhs::Item) -> U, 
[src]

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

impl<T, N> FunctionalSequence<T> for GenericArray<T, N> where
    N: ArrayLength<T>,
    Self: GenericSequence<T, Item = T, Length = N>, 
[src]

Loading content...