generic_array::functional

Trait FunctionalSequence

Source
pub unsafe trait FunctionalSequence<T>: GenericSequence<T> {
    // 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 { ... }
    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>> + GenericSequence<B, Length = Self::Length>,
             Self::Length: ArrayLength<B> + ArrayLength<U>,
             F: FnMut(Self::Item, Rhs::Item) -> U { ... }
    fn fold<U, F>(self, init: U, f: F) -> U
       where F: FnMut(U, Self::Item) -> U { ... }
}
Expand description

Defines functional programming methods for generic sequences

Provided Methods§

Source

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.

Source

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>> + GenericSequence<B, Length = Self::Length>, Self::Length: ArrayLength<B> + ArrayLength<U>, 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.

Source

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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a, T, S: GenericSequence<T>> FunctionalSequence<T> for &'a S

Source§

impl<'a, T, S: GenericSequence<T>> FunctionalSequence<T> for &'a mut S

Implementors§

Source§

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