Skip to main content

IntoBulk

Struct IntoBulk 

Source
pub struct IntoBulk<T, const N: usize> { /* private fields */ }

Trait Implementations§

Source§

impl<T, const N: usize> Bulk for IntoBulk<T, N>

Source§

type MinLength = [(); N]

Source§

type MaxLength = [(); N]

Source§

fn len(&self) -> usize

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

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

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

fn get<'b, L>( &'b self, i: L, ) -> Option<&'b <Self as RandomAccessBulk>::ItemPointee>
where L: LengthValue, Self: 'b,

Source§

fn get_mut<'b, L>( &'b mut self, i: L, ) -> Option<&'b mut <Self as RandomAccessBulk>::ItemPointee>
where L: LengthValue, Self: 'b,

Source§

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

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

fn for_each<F>(self, f: F)
where F: FnMut(T),

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

fn try_for_each<F, R>(self, f: F) -> R
where T:, F: FnMut(T) -> R, R: Try<Output = (), Residual>,

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§

type Length = Self::Length

Source§

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

Source§

fn is_empty(&self) -> bool

Returns true if the iterator is empty. Read more
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 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 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 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 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 each_ref<'a>(&'a self) -> Self::EachRef<'a>
where Self: RandomAccessBulk + 'a,

Source§

fn each_mut<'a>(&'a mut self) -> Self::EachMut<'a>
where Self: InplaceBulk + 'a,

Source§

fn try_get<'a, L>(&'a self, i: L) -> Result<&'a Self::ItemPointee, OutOfRange>
where Self: RandomAccessBulk + 'a, L: LengthValue,

Source§

fn try_get_mut<'a, L>( &'a mut self, i: L, ) -> Result<&'a mut Self::ItemPointee, OutOfRange>
where Self: InplaceBulk + 'a, L: LengthValue,

Source§

fn get_many<'a, NN, const N: usize>( &'a self, i: NN, ) -> [Option<&'a <Self as RandomAccessBulk>::ItemPointee>; N]
where Self: RandomAccessBulk + 'a, NN: IntoBulk<Item = usize, IntoBulk: Bulk + StaticBulk<Array<()> = [(); N]>>,

Source§

fn get_many_mut<'a, NN, const N: usize>( &'a mut self, i: NN, ) -> [Option<&'a mut <Self as RandomAccessBulk>::ItemPointee>; N]
where Self: InplaceBulk + 'a, NN: IntoBulk<Item = usize, IntoBulk: Bulk + StaticBulk<Array<()> = [(); N]>>,

Source§

fn swap_inplace<L, R>(&mut self, lhs: L, rhs: R)
where Self: InplaceBulk, L: LengthValue, R: LengthValue,

Source§

fn try_swap_inplace<L, R>(&mut self, lhs: L, rhs: R) -> Result<(), OutOfRange>
where Self: InplaceBulk, L: LengthValue, R: LengthValue,

Source§

impl<T: Clone, const N: usize> Clone for IntoBulk<T, N>

Source§

fn clone(&self) -> IntoBulk<T, N>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug, const N: usize> Debug for IntoBulk<T, N>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T, const N: usize> DoubleEndedBulk for IntoBulk<T, N>

Source§

fn rev_for_each<F>(self, f: F)
where F: FnMut(T),

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

fn try_rev_for_each<F, R>(self, f: F) -> R
where T:, F: FnMut(T) -> R, R: Try<Output = (), Residual>,

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<T, const N: usize> InplaceBulk for IntoBulk<T, N>

Source§

type EachMut<'b> = BulkMut<'b, T, N> where Self::ItemPointee: 'b, Self: 'b

Source§

fn each_mut<'b>(bulk: &'b mut Self) -> Self::EachMut<'b>
where Self::ItemPointee: 'b, Self: 'b,

Source§

impl<T, const N: usize> IntoIterator for IntoBulk<T, N>

Source§

type Item = T

The type of the elements being iterated over.
Source§

type IntoIter = <[T; N] as IntoIterator>::IntoIter

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<T, const N: usize> RandomAccessBulk for IntoBulk<T, N>

Source§

type ItemPointee = T

Source§

type EachRef<'b> = Bulk<'b, T, N> where Self::ItemPointee: 'b, Self: 'b

Source§

fn each_ref<'b>(bulk: &'b Self) -> Self::EachRef<'b>
where Self::ItemPointee: 'b, Self: 'b,

Source§

impl<T, const N: usize, const M: usize> SplitBulk<[(); M]> for IntoBulk<T, N>
where [(); { _ }]:,

Source§

type Left = IntoBulk<T, {N.min(M)}>

Source§

type Right = IntoBulk<T, {N.saturating_sub(M)}>

Source§

fn split_at(bulk: Self, _n: [(); M]) -> (Self::Left, Self::Right)
where Self: Sized,

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

impl<T, const N: usize, L> SplitBulk<L> for IntoBulk<T, N>
where L: LengthValue,

Source§

type Left = <<[T; N] as IntoIterator>::IntoIter as IntoBulk>::IntoBulk

Source§

type Right = <<[T; N] as IntoIterator>::IntoIter as IntoBulk>::IntoBulk

Source§

default fn split_at(bulk: 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<T, const N: usize> Freeze for IntoBulk<T, N>
where T: Freeze,

§

impl<T, const N: usize> RefUnwindSafe for IntoBulk<T, N>
where T: RefUnwindSafe,

§

impl<T, const N: usize> Send for IntoBulk<T, N>
where T: Send,

§

impl<T, const N: usize> Sync for IntoBulk<T, N>
where T: Sync,

§

impl<T, const N: usize> Unpin for IntoBulk<T, N>
where T: Unpin,

§

impl<T, const N: usize> UnwindSafe for IntoBulk<T, N>
where T: 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<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<I, const N: usize> CollectNearest for I
where I: Bulk + StaticBulk<Array<()> = [(); N]>,

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

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> 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<A, T> MaybeBulk for T
where T: Bulk<Item = A>, <T as Bulk>::MaxLength: MaybeLength, <T as Bulk>::MinLength: MaybeLength,

Source§

impl<A, T, const N: usize> MaybeBulk for T
where T: StaticBulk<Item = A, Array<()> = [(); N], Array<A> = [A; N]> + Bulk, [A; N]: Maybe<Item = A>, [(); N]: MaybeLength,

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
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, 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]>,