Skip to main content

Merge

Struct Merge 

Source
pub struct Merge<Lhs, Rhs, F>
where Lhs: Bulk<Item: Into<<F as FnOnce<(Lhs::Item, Rhs::Item)>>::Output>>, Rhs: Bulk<Item: Into<<F as FnOnce<(Lhs::Item, Rhs::Item)>>::Output>>, F: FnMut<(Lhs::Item, Rhs::Item)>,
{ /* private fields */ }

Trait Implementations§

Source§

impl<Lhs, Rhs, F, O> Bulk for Merge<Lhs, Rhs, F>
where Lhs: Bulk<Item: Into<O>>, Rhs: Bulk<Item: Into<O>>, F: FnMut(Lhs::Item, Rhs::Item) -> O,

Source§

type Length = <<Lhs as Bulk>::Length as Length>::Max<<Rhs as Bulk>::Length>

Source§

type MinLength = <<Lhs as Bulk>::MinLength as Length>::Max<<Rhs as Bulk>::MinLength>

Source§

type MaxLength = <<Lhs as Bulk>::MaxLength as Length>::Max<<Rhs as Bulk>::MaxLength>

Source§

fn len(&self) -> usize

Returns the exact length of the bulk. Read more
Source§

fn is_empty(&self) -> bool

Returns true if the iterator is empty. Read more
Source§

fn first(self) -> Option<Self::Item>
where Self: Sized,

Returns the first value, and discards the rest of the bulk. Read more
Source§

fn for_each<FF>(self, f: FF)
where Self: Sized, FF: FnMut(Self::Item),

Calls a closure on each element of a bulk. Read more
Source§

fn try_for_each<FF, R>(self, f: FF) -> R
where Self: Sized, FF: FnMut(Self::Item) -> R, R: Try<Output = ()>,

A bulk method that applies a fallible function to each item in the bulk, stopping at the first error and returning that error. Read more
Source§

fn length(&self) -> Value<Self::Length>

Source§

fn last(self) -> Option<Self::Item>
where Self::Item:, Self: Sized,

Returns the last value, and discards the rest of the bulk. Read more
Source§

fn nth<L>(self, n: L) -> Option<Self::Item>
where Self: Sized, Self::Item:, L: LengthValue,

Returns the n-th value, and discards the rest of the bulk. Read more
Source§

fn many<NN, const N: usize>(self, n: NN) -> [Option<Self::Item>; N]
where Self: Sized, Self::Item:, NN: IntoBulk<Item = usize, IntoBulk: Bulk + StaticBulk<Array<()> = [(); N]>>,

Source§

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

Folds every element into an accumulator by applying an operation, returning the final result. Read more
Source§

fn try_fold<B, F, R>(self, init: B, f: F) -> R
where B:, Self: Sized, Self::Item:, F: FnMut(B, Self::Item) -> R, R: Try<Output = B, Residual>,

Source§

fn reduce<F>(self, f: F) -> Option<Self::Item>
where Self: Sized, Self::Item:, F: FnMut(Self::Item, Self::Item) -> Self::Item,

Source§

fn try_reduce<F, R>( self, f: F, ) -> <R::Residual as Residual<Option<R::Output>>>::TryType
where Self: Sized, Self::Item:, F: FnMut(Self::Item, Self::Item) -> R, R: Try<Output = Self::Item, Residual: Residual<Option<Self::Item>, TryType: Try>>,

Source§

fn max(self) -> Option<Self::Item>
where Self: Sized, Self::Item: Ord,

Returns the maximum element of a bulk. Read more
Source§

fn min(self) -> Option<Self::Item>
where Self: Sized, Self::Item: Ord,

Returns the minimum element of a bulk. Read more
Source§

fn max_by_key<B, F>(self, keygen: F) -> Option<Self::Item>
where Self: Sized, Self::Item:, F: FnMut(&Self::Item) -> B, B: Ord,

Returns the element that gives the maximum value from the specified function. Read more
Source§

fn max_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, Self::Item:, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the maximum value with respect to the specified comparison function. Read more
Source§

fn min_by_key<B, F>(self, keygen: F) -> Option<Self::Item>
where Self: Sized, Self::Item:, F: FnMut(&Self::Item) -> B, B: Ord,

Returns the element that gives the minimum value from the specified function. Read more
Source§

fn min_by<F>(self, compare: F) -> Option<Self::Item>
where Self: Sized, Self::Item:, F: FnMut(&Self::Item, &Self::Item) -> Ordering,

Returns the element that gives the minimum value with respect to the specified comparison function. Read more
Source§

fn step_by<L>(self, step: L) -> StepBy<Self, L::Length<()>>
where Self: Sized, L: LengthValue,

Creates a bulk starting at the same point, but stepping by the given amount at each iteration. Read more
Source§

fn chain<U>(self, other: U) -> Chain<Self, U::IntoBulk>
where Self: Sized, U: IntoBulk<Item = Self::Item>,

Takes two bulks and creates a new bulk over both in sequence. Read more
Source§

fn zip<U>( self, other: U, ) -> Zip<Self, <<U as IntoContained>::IntoContained as IntoBulk>::IntoBulk>
where Self: Sized, U: IntoContainedBy<Self>,

‘Zips up’ two bulks or iterators into a single bulk of pairs. One of them must be a bulk. Read more
Source§

fn merge<U, F, O>(self, other: U, merger: F) -> Merge<Self, U::IntoBulk, F>
where Self: Sized, U: IntoBulk, Self::Item: Into<O>, U::Item: Into<O>, F: FnMut(Self::Item, U::Item) -> O,

Merges two bulks or iterators into a single bulk using a merging function. Read more
Source§

fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
where Self: Sized, Self::Item: Clone,

Creates a new bulk which places a copy of separator between adjacent items of the original bulk. Read more
Source§

fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
where Self: Sized, G: FnMut() -> Self::Item,

Creates a new bulk which places an item generated by separator between adjacent items of the original bulk. Read more
Source§

fn map<B, F>(self, f: F) -> Map<Self, F>
where Self: Sized, F: FnMut(Self::Item) -> B,

Takes a closure and creates a bulk which calls that closure on each element. Read more
Source§

fn enumerate(self) -> Enumerate<Self>
where Self: Sized,

Creates a bulk which gives the current index together with its values. Read more
Source§

fn enumerate_from<U>(self, initial_count: U) -> EnumerateFrom<Self, U>
where Self: Sized, U: Step + Copy,

Creates a bulk which gives the current index counting from a given initial index together with its values. Read more
Source§

fn skip<L>(self, n: L) -> Skip<Self, L::Length<()>>
where Self: Sized, L: LengthValue,

Creates a bulk that skips the first n elements. Read more
Source§

fn take<L>(self, n: L) -> Take<Self, L::Length<()>>
where Self: Sized, L: LengthValue,

Creates a bulk for the first n elements, or fewer if the underlying bulk/iterator is shorter. Read more
Source§

fn flat_map<U, F>(self, f: F) -> FlatMap<Self, F>
where Self: Sized, U: IntoBulk<IntoBulk: StaticBulk>, F: FnMut(Self::Item) -> U,

Creates a bulk that works like map, but flattens nested structure. Read more
Source§

fn flatten(self) -> Flatten<Self>
where Self: Sized, Self::Item: IntoBulk<IntoBulk: StaticBulk>,

Creates a bulk that flattens nested structure. Read more
Source§

fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
where Self: Sized, F: FnMut(&[Self::Item; N]) -> R,

Calls the given function f for each contiguous window of size N over self and returns a bulk of the outputs of f. The windows during mapping will overlap. Read more
Source§

fn inspect<F>(self, f: F) -> Inspect<Self, F>
where Self: Sized, F: FnMut(&Self::Item),

Does something with each element of a bulk, passing the value on. Read more
Source§

fn mutate<F>(self, f: F) -> Mutate<Self, F>
where Self: Sized, F: FnMut(&mut Self::Item),

Mutates with each element of a bulk, passing the value on. Read more
Source§

fn collect<C, A>(self) -> C
where Self: Sized, C: FromBulk<A>, A: CollectionAdapter<Elem = Self::Item> + CollectionStrategy<Self, C> + ?Sized,

Transforms a bulk into a collection. Read more
Source§

fn try_collect<C, A>( self, ) -> <<Self::Item as Try>::Residual as Residual<C>>::TryType
where Self: Sized, C: FromBulk<A>, A: CollectionAdapter<Elem = <Self::Item as Try>::Output> + TryCollectionAdapter<Self, C> + ?Sized, Self::Item: Try<Residual: Residual<C, TryType: Try>>,

Fallibly transforms a bulk into a collection, short circuiting if a failure is encountered. Read more
Source§

fn collect_array( self, ) -> <Self as StaticBulk>::Array<<Self as IntoIterator>::Item>
where Self: StaticBulk,

Transforms a statically sized bulk into an array. The bulk must implement StaticBulk. Read more
Source§

fn try_collect_array( self, ) -> <<Self::Item as Try>::Residual as Residual<Self::Array<<Self::Item as Try>::Output>>>::TryType
where Self: StaticBulk<Item: Try<Residual: Residual<(), TryType: Try> + Residual<Self::Array<<Self::Item as Try>::Output>, TryType: Try>, Output>> + Bulk,

Fallibly transforms a statically sized bulk into an array, short circuiting if a failure is encountered. The bulk must implement StaticBulk. Read more
Source§

fn resize<N>(self, n: N, element: Self::Item) -> Resize<Self, N::Length<()>>
where Self: Sized, Self::Item: Copy, N: LengthValue + ?Sized,

Resizes a bulk, padding it with copies of a given value of element if too short, or truncating it if too long. The resuling bulk will have an exact length given by n. Read more
Source§

fn resize_with<F, N>( self, n: N, padder: F, ) -> ResizeWith<Self, F, N::Length<()>>
where Self: Sized, N: LengthValue, F: FnMut() -> Self::Item,

Resizes a bulk, padding it with the output of padder if too short, or truncating it if too long. The resuling bulk will have an exact length given by n. Read more
Source§

fn rev(self) -> Rev<Self>
where Self: Sized + DoubleEndedBulk,

Reverses a bulks’s direction. Read more
Source§

fn copied<'a, T>(self) -> Copied<Self>
where T: Copy + 'a, Self: Sized + Bulk<Item = &'a T>,

Creates a bulk which copies all of its elements. Read more
Source§

fn cloned<'a, T>(self) -> Cloned<Self>
where T: Clone + 'a, Self: Sized + Bulk<Item = &'a T>,

Creates a bulk which clones all of its elements. Read more
Source§

fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>
where Self: Sized,

Returns a bulk of N elements of the bulk at a time. Read more
Source§

fn split_at<L>(self, n: L) -> (Self::Left, Self::Right)
where Self: SplitBulk<L> + Sized, L: LengthValue,

Splits a bulk in two at a specified index. Read more
Source§

fn rsplit_at<L>(self, n: L) -> (Self::Left, Self::Right)
where Self: SplitBulk<SaturatingSub<<<Self as Bulk>::Length as Length>::Value, L>> + Sized, L: LengthValue,

Splits a bulk in two at a specified reversed index. Read more
Source§

fn swap<S>(self, lhs: impl LengthValue, rhs: impl LengthValue)
where Self: Sized, Self::Item: BorrowMut<S>,

Consumes the bulk, and swaps two elements of it. Items must be mutably dereferenceable. Read more
Source§

fn try_swap<S>( self, lhs: impl LengthValue, rhs: impl LengthValue, ) -> Result<(), OutOfRange>
where Self: Sized, Self::Item: BorrowMut<S>,

Consumes the bulk, and swaps two elements of it. Items must be mutably dereferenceable. Read more
Source§

fn sum_from<T>(self, from: T) -> T
where T: Add<Self::Item, Output = T>, Self: Sized,

Source§

fn product_from<T>(self, from: T) -> T
where T: Mul<Self::Item, Output = T>, Self: Sized,

Source§

impl<Lhs, Rhs, F, O> DoubleEndedBulk for Merge<Lhs, Rhs, F>
where Lhs: DoubleEndedBulk<Item: Into<O>>, Rhs: DoubleEndedBulk<Item: Into<O>>, F: FnMut(Lhs::Item, Rhs::Item) -> O,

Source§

fn rev_for_each<FF>(self, f: FF)
where Self: Sized, FF: FnMut(Self::Item),

Calls a closure on each element of a bulk in reverse.
Source§

fn try_rev_for_each<FF, R>(self, f: FF) -> R
where Self: Sized, FF: FnMut(Self::Item) -> R, R: Try<Output = ()>,

A bulk method that applies a fallible function to each item in the bulk in reverse, stopping at the first error and returning that error.
Source§

impl<Lhs, Rhs, F, O> IntoIterator for Merge<Lhs, Rhs, F>
where Lhs: Bulk<Item: Into<O>>, Rhs: Bulk<Item: Into<O>>, F: FnMut(Lhs::Item, Rhs::Item) -> O,

Source§

type Item = O

The type of the elements being iterated over.
Source§

type IntoIter = IntoIter<<Lhs as IntoIterator>::IntoIter, <Rhs as IntoIterator>::IntoIter, F, O>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<Lhs, Rhs, F, O, L> SplitBulk<L> for Merge<Lhs, Rhs, F>
where Lhs: SplitBulk<L, Item: Into<O>>, Rhs: SplitBulk<L, Item: Into<O>>, Self: Bulk, Merge<Lhs::Left, Rhs::Left, F>: Bulk<Item = Self::Item>, Merge<Lhs::Right, Rhs::Right, F>: Bulk<Item = Self::Item>, F: FnMut(Lhs::Item, Rhs::Item) -> O + Copy, L: LengthValue,

Source§

type Left = Merge<<Lhs as SplitBulk<L>>::Left, <Rhs as SplitBulk<L>>::Left, F>

Source§

type Right = Merge<<Lhs as SplitBulk<L>>::Right, <Rhs as SplitBulk<L>>::Right, F>

Source§

fn split_at(_: Self, n: L) -> (Self::Left, Self::Right)
where Self: Sized,

Splits a bulk in two at a specified index. Read more

Auto Trait Implementations§

§

impl<Lhs, Rhs, F> Freeze for Merge<Lhs, Rhs, F>
where <Rhs as IntoIterator>::Item: Sized, <Lhs as IntoIterator>::Item: Sized, Lhs: Freeze, Rhs: Freeze, F: Freeze,

§

impl<Lhs, Rhs, F> RefUnwindSafe for Merge<Lhs, Rhs, F>
where <Rhs as IntoIterator>::Item: Sized, <Lhs as IntoIterator>::Item: Sized, Lhs: RefUnwindSafe, Rhs: RefUnwindSafe, F: RefUnwindSafe,

§

impl<Lhs, Rhs, F> Send for Merge<Lhs, Rhs, F>
where <Rhs as IntoIterator>::Item: Sized, <Lhs as IntoIterator>::Item: Sized, Lhs: Send, Rhs: Send, F: Send,

§

impl<Lhs, Rhs, F> Sync for Merge<Lhs, Rhs, F>
where <Rhs as IntoIterator>::Item: Sized, <Lhs as IntoIterator>::Item: Sized, Lhs: Sync, Rhs: Sync, F: Sync,

§

impl<Lhs, Rhs, F> Unpin for Merge<Lhs, Rhs, F>
where <Rhs as IntoIterator>::Item: Sized, <Lhs as IntoIterator>::Item: Sized, Lhs: Unpin, Rhs: Unpin, F: Unpin,

§

impl<Lhs, Rhs, F> UnsafeUnpin for Merge<Lhs, Rhs, F>
where <Rhs as IntoIterator>::Item: Sized, <Lhs as IntoIterator>::Item: Sized, Lhs: UnsafeUnpin, Rhs: UnsafeUnpin, F: UnsafeUnpin,

§

impl<Lhs, Rhs, F> UnwindSafe for Merge<Lhs, Rhs, F>
where <Rhs as IntoIterator>::Item: Sized, <Lhs as IntoIterator>::Item: Sized, Lhs: UnwindSafe, Rhs: UnwindSafe, F: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsBulk for T
where T: ?Sized,

Source§

fn bulk<'a>(&'a self) -> <&'a Self as IntoBulk>::IntoBulk
where &'a Self: IntoBulk,

Creates a bulk from a reference. Read more
Source§

fn bulk_mut<'a>(&'a mut self) -> <&'a mut Self as IntoBulk>::IntoBulk
where &'a mut Self: IntoBulk,

Creates a bulk from a mutable reference. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<I> CollectNearest for I
where I: Bulk + StaticBulk,

Source§

type Nearest = <I as StaticBulk>::Array<<I as IntoIterator>::Item>

Source§

type TryNearest = <I as StaticBulk>::Array<<<I as IntoIterator>::Item as Try>::Output> where <I as IntoIterator>::Item: Try

Source§

fn collect_nearest(self) -> <I as CollectNearest>::Nearest
where I: Sized,

Collects into an array if possible, otherwise a vector
Source§

fn try_collect_nearest( self, ) -> <<<I as IntoIterator>::Item as Try>::Residual as Residual<<I as CollectNearest>::TryNearest>>::TryType

Fallibly collects into an array if possible, otherwise a vector
Source§

impl<C, F> Curry<C> for F

Source§

type Output = Curried<(C,), (), F>

Source§

fn curry_once(self, arg: C) -> <F as Curry<C>>::Output

Source§

fn curry_mut(&mut self, arg: C) -> <&mut Self as Curry<C>>::Output

Source§

fn curry(&self, arg: C) -> <&Self as Curry<C>>::Output

Source§

impl<T, B> EitherIntoBulk<B> for T
where T: EitherIntoBulk<B>, <T as EitherIntoBulk<B>>::EitherIntoBulk: IntoBulk, B: IntoIterator,

Source§

impl<T> EmptyBulk for T
where T: DoubleEndedBulk<Length = [(); 0]> + StaticBulk,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, A, I> IntoBulk for T
where T: IntoIterator<Item = A, IntoIter = I>, I: ExactSizeIterator<Item = A>,

Source§

type IntoBulk = Bulk<T>

Which kind of bulk are we turning this into?
Source§

default fn into_bulk(self) -> <T as IntoBulk>::IntoBulk

Creates a bulk from a value. Read more
Source§

impl<T> IntoBulk for T
where T: Bulk,

Source§

type IntoBulk = T

Which kind of bulk are we turning this into?
Source§

fn into_bulk(self) -> <T as IntoBulk>::IntoBulk

Creates a bulk from a value. Read more
Source§

impl<T, B> IntoContainedBy<B> for T
where T: IntoContained + EitherIntoBulk<B>, B: IntoIterator,

Source§

impl<T> OnceBulk for T
where T: DoubleEndedBulk + StaticBulk<Array<<T as IntoIterator>::Item> = [<T as IntoIterator>::Item; 1]>,

Source§

impl<C, F> RCurry<C> for F

Source§

type Output = Curried<(), (C,), F>

Source§

fn rcurry_once(self, arg: C) -> <F as RCurry<C>>::Output

Source§

fn rcurry_mut(&mut self, arg: C) -> <&mut Self as RCurry<C>>::Output

Source§

fn rcurry(&self, arg: C) -> <&Self as RCurry<C>>::Output

Source§

impl<U> Same for U

Source§

fn same<T>(self) -> Result<T, U>

Source§

impl<T, const N: usize> StaticBulk for T
where T: Bulk<MinLength = [(); N], MaxLength = [(); N]>,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.