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§
Sourcefn map<U, F>(self, f: F) -> MappedSequence<Self, T, U>
fn map<U, F>(self, f: F) -> MappedSequence<Self, T, 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.
Sourcefn 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 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.
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.