pub unsafe trait GenericSequence<T>: Sized + IntoIterator {
type Length: ArrayLength<T>;
type Sequence: GenericSequence<T, Length = Self::Length> + FromIterator<T>;
// Required method
fn generate<F>(f: F) -> Self::Sequence
where F: FnMut(usize) -> T;
// Provided methods
#[doc(hidden)] fn inverted_zip<B, U, F>(
self,
lhs: GenericArray<B, Self::Length>,
f: F,
) -> MappedSequence<GenericArray<B, Self::Length>, B, U>
where GenericArray<B, Self::Length>: GenericSequence<B, Length = Self::Length> + MappedGenericSequence<B, U>,
Self: MappedGenericSequence<T, U>,
Self::Length: ArrayLength<B> + ArrayLength<U>,
F: FnMut(B, Self::Item) -> U { ... }
#[doc(hidden)] fn inverted_zip2<B, Lhs, U, F>(
self,
lhs: Lhs,
f: F,
) -> MappedSequence<Lhs, B, U>
where Lhs: GenericSequence<B, Length = Self::Length> + MappedGenericSequence<B, U>,
Self: MappedGenericSequence<T, U>,
Self::Length: ArrayLength<B> + ArrayLength<U>,
F: FnMut(Lhs::Item, Self::Item) -> U { ... }
}Expand description
Defines some sequence with an associated length and iteration capabilities.
This is useful for passing N-length generic arrays as generics.
Required Associated Types§
Sourcetype Length: ArrayLength<T>
type Length: ArrayLength<T>
GenericArray associated length
Sourcetype Sequence: GenericSequence<T, Length = Self::Length> + FromIterator<T>
type Sequence: GenericSequence<T, Length = Self::Length> + FromIterator<T>
Concrete sequence type used in conjuction with reference implementations of GenericSequence
Required Methods§
Provided Methods§
#[doc(hidden)] fn inverted_zip<B, U, F>(
self,
lhs: GenericArray<B, Self::Length>,
f: F,
) -> MappedSequence<GenericArray<B, Self::Length>, B, U>where
GenericArray<B, Self::Length>: GenericSequence<B, Length = Self::Length> + MappedGenericSequence<B, U>,
Self: MappedGenericSequence<T, U>,
Self::Length: ArrayLength<B> + ArrayLength<U>,
F: FnMut(B, Self::Item) -> U,
#[doc(hidden)] fn inverted_zip2<B, Lhs, U, F>(
self,
lhs: Lhs,
f: F,
) -> MappedSequence<Lhs, B, U>where
Lhs: GenericSequence<B, Length = Self::Length> + MappedGenericSequence<B, U>,
Self: MappedGenericSequence<T, U>,
Self::Length: ArrayLength<B> + ArrayLength<U>,
F: FnMut(Lhs::Item, Self::Item) -> U,
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.