# [−][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]

#### `fn map<U, F>(self, f: F) -> MappedSequence<Self, T, U> where
Self::Length: ArrayLength<U>,
Self: MappedGenericSequence<T, U>,
F: FnMut(T) -> 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(T, Rhs::Item) -> U,` [src]

#### `fn fold<U, F>(self, init: U, f: F) -> U where
F: FnMut(U, T) -> U,` [src]

Loading content...

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)