Enum tract_core::internal::tract_itertools::Either
source · [−]pub enum Either<L, R> {
Left(L),
Right(R),
}Expand description
The enum Either with variants Left and Right is a general purpose
sum type with two cases.
The Either type is symmetric and treats its variants the same way, without
preference.
(For representing success or error, use the regular Result enum instead.)
Variants
Left(L)
A value of type L.
Right(R)
A value of type R.
Implementations
sourceimpl<L, R> Either<L, R>
impl<L, R> Either<L, R>
sourcepub fn is_left(&self) -> bool
pub fn is_left(&self) -> bool
Return true if the value is the Left variant.
use either::*;
let values = [Left(1), Right("the right value")];
assert_eq!(values[0].is_left(), true);
assert_eq!(values[1].is_left(), false);sourcepub fn is_right(&self) -> bool
pub fn is_right(&self) -> bool
Return true if the value is the Right variant.
use either::*;
let values = [Left(1), Right("the right value")];
assert_eq!(values[0].is_right(), false);
assert_eq!(values[1].is_right(), true);sourcepub fn left(self) -> Option<L>
pub fn left(self) -> Option<L>
Convert the left side of Either<L, R> to an Option<L>.
use either::*;
let left: Either<_, ()> = Left("some value");
assert_eq!(left.left(), Some("some value"));
let right: Either<(), _> = Right(321);
assert_eq!(right.left(), None);sourcepub fn right(self) -> Option<R>
pub fn right(self) -> Option<R>
Convert the right side of Either<L, R> to an Option<R>.
use either::*;
let left: Either<_, ()> = Left("some value");
assert_eq!(left.right(), None);
let right: Either<(), _> = Right(321);
assert_eq!(right.right(), Some(321));sourcepub fn as_ref(&self) -> Either<&L, &R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
pub fn as_ref(&self) -> Either<&L, &R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Convert &Either<L, R> to Either<&L, &R>.
use either::*;
let left: Either<_, ()> = Left("some value");
assert_eq!(left.as_ref(), Left(&"some value"));
let right: Either<(), _> = Right("some value");
assert_eq!(right.as_ref(), Right(&"some value"));sourcepub fn as_mut(&mut self) -> Either<&mut L, &mut R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
pub fn as_mut(&mut self) -> Either<&mut L, &mut R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Convert &mut Either<L, R> to Either<&mut L, &mut R>.
use either::*;
fn mutate_left(value: &mut Either<u32, u32>) {
if let Some(l) = value.as_mut().left() {
*l = 999;
}
}
let mut left = Left(123);
let mut right = Right(123);
mutate_left(&mut left);
mutate_left(&mut right);
assert_eq!(left, Left(999));
assert_eq!(right, Right(123));sourcepub fn as_pin_ref(self: Pin<&Either<L, R>>) -> Either<Pin<&L>, Pin<&R>>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
pub fn as_pin_ref(self: Pin<&Either<L, R>>) -> Either<Pin<&L>, Pin<&R>>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Convert Pin<&Either<L, R>> to Either<Pin<&L>, Pin<&R>>,
pinned projections of the inner variants.
sourcepub fn as_pin_mut(
self: Pin<&mut Either<L, R>>
) -> Either<Pin<&mut L>, Pin<&mut R>>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
pub fn as_pin_mut(
self: Pin<&mut Either<L, R>>
) -> Either<Pin<&mut L>, Pin<&mut R>>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Convert Pin<&mut Either<L, R>> to Either<Pin<&mut L>, Pin<&mut R>>,
pinned projections of the inner variants.
sourcepub fn flip(self) -> Either<R, L>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
pub fn flip(self) -> Either<R, L>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Convert Either<L, R> to Either<R, L>.
use either::*;
let left: Either<_, ()> = Left(123);
assert_eq!(left.flip(), Right(123));
let right: Either<(), _> = Right("some value");
assert_eq!(right.flip(), Left("some value"));sourcepub fn map_left<F, M>(self, f: F) -> Either<M, R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(L) -> M,
pub fn map_left<F, M>(self, f: F) -> Either<M, R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(L) -> M,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Apply the function f on the value in the Left variant if it is present rewrapping the
result in Left.
use either::*;
let left: Either<_, u32> = Left(123);
assert_eq!(left.map_left(|x| x * 2), Left(246));
let right: Either<u32, _> = Right(123);
assert_eq!(right.map_left(|x| x * 2), Right(123));sourcepub fn map_right<F, S>(self, f: F) -> Either<L, S>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(R) -> S,
pub fn map_right<F, S>(self, f: F) -> Either<L, S>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(R) -> S,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Apply the function f on the value in the Right variant if it is present rewrapping the
result in Right.
use either::*;
let left: Either<_, u32> = Left(123);
assert_eq!(left.map_right(|x| x * 2), Left(123));
let right: Either<u32, _> = Right(123);
assert_eq!(right.map_right(|x| x * 2), Right(246));sourcepub fn either<F, G, T>(self, f: F, g: G) -> Twhere
F: FnOnce(L) -> T,
G: FnOnce(R) -> T,
pub fn either<F, G, T>(self, f: F, g: G) -> Twhere
F: FnOnce(L) -> T,
G: FnOnce(R) -> T,
Apply one of two functions depending on contents, unifying their result. If the value is
Left(L) then the first function f is applied; if it is Right(R) then the second
function g is applied.
use either::*;
fn square(n: u32) -> i32 { (n * n) as i32 }
fn negate(n: i32) -> i32 { -n }
let left: Either<u32, i32> = Left(4);
assert_eq!(left.either(square, negate), 16);
let right: Either<u32, i32> = Right(-4);
assert_eq!(right.either(square, negate), 4);sourcepub fn either_with<Ctx, F, G, T>(self, ctx: Ctx, f: F, g: G) -> Twhere
F: FnOnce(Ctx, L) -> T,
G: FnOnce(Ctx, R) -> T,
pub fn either_with<Ctx, F, G, T>(self, ctx: Ctx, f: F, g: G) -> Twhere
F: FnOnce(Ctx, L) -> T,
G: FnOnce(Ctx, R) -> T,
Like either, but provide some context to whichever of the
functions ends up being called.
// In this example, the context is a mutable reference
use either::*;
let mut result = Vec::new();
let values = vec![Left(2), Right(2.7)];
for value in values {
value.either_with(&mut result,
|ctx, integer| ctx.push(integer),
|ctx, real| ctx.push(f64::round(real) as i32));
}
assert_eq!(result, vec![2, 3]);sourcepub fn left_and_then<F, S>(self, f: F) -> Either<S, R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(L) -> Either<S, R>,
pub fn left_and_then<F, S>(self, f: F) -> Either<S, R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(L) -> Either<S, R>,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Apply the function f on the value in the Left variant if it is present.
use either::*;
let left: Either<_, u32> = Left(123);
assert_eq!(left.left_and_then::<_,()>(|x| Right(x * 2)), Right(246));
let right: Either<u32, _> = Right(123);
assert_eq!(right.left_and_then(|x| Right::<(), _>(x * 2)), Right(123));sourcepub fn right_and_then<F, S>(self, f: F) -> Either<L, S>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(R) -> Either<L, S>,
pub fn right_and_then<F, S>(self, f: F) -> Either<L, S>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(R) -> Either<L, S>,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Apply the function f on the value in the Right variant if it is present.
use either::*;
let left: Either<_, u32> = Left(123);
assert_eq!(left.right_and_then(|x| Right(x * 2)), Left(123));
let right: Either<u32, _> = Right(123);
assert_eq!(right.right_and_then(|x| Right(x * 2)), Right(246));sourcepub fn into_iter(
self
) -> Either<<L as IntoIterator>::IntoIter, <R as IntoIterator>::IntoIter>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
L: IntoIterator,
R: IntoIterator<Item = <L as IntoIterator>::Item>,
pub fn into_iter(
self
) -> Either<<L as IntoIterator>::IntoIter, <R as IntoIterator>::IntoIter>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
L: IntoIterator,
R: IntoIterator<Item = <L as IntoIterator>::Item>,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Convert the inner value to an iterator.
use either::*;
let left: Either<_, Vec<u32>> = Left(vec![1, 2, 3, 4, 5]);
let mut right: Either<Vec<u32>, _> = Right(vec![]);
right.extend(left.into_iter());
assert_eq!(right, Right(vec![1, 2, 3, 4, 5]));sourcepub fn left_or(self, other: L) -> L
pub fn left_or(self, other: L) -> L
Return left value or given value
Arguments passed to left_or are eagerly evaluated; if you are passing
the result of a function call, it is recommended to use left_or_else,
which is lazily evaluated.
Examples
let left: Either<&str, &str> = Left("left");
assert_eq!(left.left_or("foo"), "left");
let right: Either<&str, &str> = Right("right");
assert_eq!(right.left_or("left"), "left");sourcepub fn left_or_default(self) -> Lwhere
L: Default,
pub fn left_or_default(self) -> Lwhere
L: Default,
Return left or a default
Examples
let left: Either<String, u32> = Left("left".to_string());
assert_eq!(left.left_or_default(), "left");
let right: Either<String, u32> = Right(42);
assert_eq!(right.left_or_default(), String::default());sourcepub fn left_or_else<F>(self, f: F) -> Lwhere
F: FnOnce(R) -> L,
pub fn left_or_else<F>(self, f: F) -> Lwhere
F: FnOnce(R) -> L,
Returns left value or computes it from a closure
Examples
let left: Either<String, u32> = Left("3".to_string());
assert_eq!(left.left_or_else(|_| unreachable!()), "3");
let right: Either<String, u32> = Right(3);
assert_eq!(right.left_or_else(|x| x.to_string()), "3");sourcepub fn right_or(self, other: R) -> R
pub fn right_or(self, other: R) -> R
Return right value or given value
Arguments passed to right_or are eagerly evaluated; if you are passing
the result of a function call, it is recommended to use right_or_else,
which is lazily evaluated.
Examples
let right: Either<&str, &str> = Right("right");
assert_eq!(right.right_or("foo"), "right");
let left: Either<&str, &str> = Left("left");
assert_eq!(left.right_or("right"), "right");sourcepub fn right_or_default(self) -> Rwhere
R: Default,
pub fn right_or_default(self) -> Rwhere
R: Default,
Return right or a default
Examples
let left: Either<String, u32> = Left("left".to_string());
assert_eq!(left.right_or_default(), u32::default());
let right: Either<String, u32> = Right(42);
assert_eq!(right.right_or_default(), 42);sourcepub fn right_or_else<F>(self, f: F) -> Rwhere
F: FnOnce(L) -> R,
pub fn right_or_else<F>(self, f: F) -> Rwhere
F: FnOnce(L) -> R,
Returns right value or computes it from a closure
Examples
let left: Either<String, u32> = Left("3".to_string());
assert_eq!(left.right_or_else(|x| x.parse().unwrap()), 3);
let right: Either<String, u32> = Right(3);
assert_eq!(right.right_or_else(|_| unreachable!()), 3);sourcepub fn unwrap_left(self) -> Lwhere
R: Debug,
pub fn unwrap_left(self) -> Lwhere
R: Debug,
sourcepub fn unwrap_right(self) -> Rwhere
L: Debug,
pub fn unwrap_right(self) -> Rwhere
L: Debug,
sourcepub fn expect_left(self, msg: &str) -> Lwhere
R: Debug,
pub fn expect_left(self, msg: &str) -> Lwhere
R: Debug,
sourcepub fn expect_right(self, msg: &str) -> Rwhere
L: Debug,
pub fn expect_right(self, msg: &str) -> Rwhere
L: Debug,
sourcepub fn either_into<T>(self) -> Twhere
L: Into<T>,
R: Into<T>,
pub fn either_into<T>(self) -> Twhere
L: Into<T>,
R: Into<T>,
Convert the contained value into T
Examples
// Both u16 and u32 can be converted to u64.
let left: Either<u16, u32> = Left(3u16);
assert_eq!(left.either_into::<u64>(), 3u64);
let right: Either<u16, u32> = Right(7u32);
assert_eq!(right.either_into::<u64>(), 7u64);sourceimpl<L, R> Either<Option<L>, Option<R>>
impl<L, R> Either<Option<L>, Option<R>>
sourcepub fn factor_none(self) -> Option<Either<L, R>>
pub fn factor_none(self) -> Option<Either<L, R>>
Factors out None from an Either of Option.
use either::*;
let left: Either<_, Option<String>> = Left(Some(vec![0]));
assert_eq!(left.factor_none(), Some(Left(vec![0])));
let right: Either<Option<Vec<u8>>, _> = Right(Some(String::new()));
assert_eq!(right.factor_none(), Some(Right(String::new())));sourceimpl<L, R, E> Either<Result<L, E>, Result<R, E>>
impl<L, R, E> Either<Result<L, E>, Result<R, E>>
sourcepub fn factor_err(self) -> Result<Either<L, R>, E>
pub fn factor_err(self) -> Result<Either<L, R>, E>
Factors out a homogenous type from an Either of Result.
Here, the homogeneous type is the Err type of the Result.
use either::*;
let left: Either<_, Result<String, u32>> = Left(Ok(vec![0]));
assert_eq!(left.factor_err(), Ok(Left(vec![0])));
let right: Either<Result<Vec<u8>, u32>, _> = Right(Ok(String::new()));
assert_eq!(right.factor_err(), Ok(Right(String::new())));sourceimpl<T, L, R> Either<Result<T, L>, Result<T, R>>
impl<T, L, R> Either<Result<T, L>, Result<T, R>>
sourcepub fn factor_ok(self) -> Result<T, Either<L, R>>
pub fn factor_ok(self) -> Result<T, Either<L, R>>
Factors out a homogenous type from an Either of Result.
Here, the homogeneous type is the Ok type of the Result.
use either::*;
let left: Either<_, Result<u32, String>> = Left(Err(vec![0]));
assert_eq!(left.factor_ok(), Err(Left(vec![0])));
let right: Either<Result<u32, Vec<u8>>, _> = Right(Err(String::new()));
assert_eq!(right.factor_ok(), Err(Right(String::new())));sourceimpl<T, L, R> Either<(T, L), (T, R)>
impl<T, L, R> Either<(T, L), (T, R)>
sourcepub fn factor_first(self) -> (T, Either<L, R>)
pub fn factor_first(self) -> (T, Either<L, R>)
Factor out a homogeneous type from an either of pairs.
Here, the homogeneous type is the first element of the pairs.
use either::*;
let left: Either<_, (u32, String)> = Left((123, vec![0]));
assert_eq!(left.factor_first().0, 123);
let right: Either<(u32, Vec<u8>), _> = Right((123, String::new()));
assert_eq!(right.factor_first().0, 123);sourceimpl<T, L, R> Either<(L, T), (R, T)>
impl<T, L, R> Either<(L, T), (R, T)>
sourcepub fn factor_second(self) -> (Either<L, R>, T)
pub fn factor_second(self) -> (Either<L, R>, T)
Factor out a homogeneous type from an either of pairs.
Here, the homogeneous type is the second element of the pairs.
use either::*;
let left: Either<_, (String, u32)> = Left((vec![0], 123));
assert_eq!(left.factor_second().1, 123);
let right: Either<(Vec<u8>, u32), _> = Right((String::new(), 123));
assert_eq!(right.factor_second().1, 123);sourceimpl<T> Either<T, T>
impl<T> Either<T, T>
sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Extract the value of an either over two equivalent types.
use either::*;
let left: Either<_, u32> = Left(123);
assert_eq!(left.into_inner(), 123);
let right: Either<u32, _> = Right(123);
assert_eq!(right.into_inner(), 123);sourcepub fn map<F, M>(self, f: F) -> Either<M, M>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(T) -> M,
pub fn map<F, M>(self, f: F) -> Either<M, M>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,where
F: FnOnce(T) -> M,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Map f over the contained value and return the result in the
corresponding variant.
use either::*;
let value: Either<_, i32> = Right(42);
let other = value.map(|x| x * 2);
assert_eq!(other, Right(84));Trait Implementations
sourceimpl<L, R, Target> AsMut<[Target]> for Either<L, R>where
L: AsMut<[Target]>,
R: AsMut<[Target]>,
impl<L, R, Target> AsMut<[Target]> for Either<L, R>where
L: AsMut<[Target]>,
R: AsMut<[Target]>,
sourceimpl<L, R> AsMut<CStr> for Either<L, R>where
L: AsMut<CStr>,
R: AsMut<CStr>,
impl<L, R> AsMut<CStr> for Either<L, R>where
L: AsMut<CStr>,
R: AsMut<CStr>,
Requires crate feature use_std.
sourceimpl<L, R> AsMut<OsStr> for Either<L, R>where
L: AsMut<OsStr>,
R: AsMut<OsStr>,
impl<L, R> AsMut<OsStr> for Either<L, R>where
L: AsMut<OsStr>,
R: AsMut<OsStr>,
Requires crate feature use_std.
sourceimpl<L, R> AsMut<Path> for Either<L, R>where
L: AsMut<Path>,
R: AsMut<Path>,
impl<L, R> AsMut<Path> for Either<L, R>where
L: AsMut<Path>,
R: AsMut<Path>,
Requires crate feature use_std.
sourceimpl<L, R, Target> AsRef<[Target]> for Either<L, R>where
L: AsRef<[Target]>,
R: AsRef<[Target]>,
impl<L, R, Target> AsRef<[Target]> for Either<L, R>where
L: AsRef<[Target]>,
R: AsRef<[Target]>,
sourceimpl<L, R> AsRef<CStr> for Either<L, R>where
L: AsRef<CStr>,
R: AsRef<CStr>,
impl<L, R> AsRef<CStr> for Either<L, R>where
L: AsRef<CStr>,
R: AsRef<CStr>,
Requires crate feature use_std.
sourceimpl<L, R> AsRef<OsStr> for Either<L, R>where
L: AsRef<OsStr>,
R: AsRef<OsStr>,
impl<L, R> AsRef<OsStr> for Either<L, R>where
L: AsRef<OsStr>,
R: AsRef<OsStr>,
Requires crate feature use_std.
sourceimpl<L, R> AsRef<Path> for Either<L, R>where
L: AsRef<Path>,
R: AsRef<Path>,
impl<L, R> AsRef<Path> for Either<L, R>where
L: AsRef<Path>,
R: AsRef<Path>,
Requires crate feature use_std.
sourceimpl<L, R> BufRead for Either<L, R>where
L: BufRead,
R: BufRead,
impl<L, R> BufRead for Either<L, R>where
L: BufRead,
R: BufRead,
Requires crate feature "use_std"
sourcefn fill_buf(&mut self) -> Result<&[u8], Error>
fn fill_buf(&mut self) -> Result<&[u8], Error>
sourcefn consume(&mut self, amt: usize)
fn consume(&mut self, amt: usize)
amt bytes have been consumed from the buffer,
so they should no longer be returned in calls to read. Read moresourcefn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
0xA byte) is reached, and append
them to the provided buffer. You do not need to clear the buffer before
appending. Read moresourcefn has_data_left(&mut self) -> Result<bool, Error>
fn has_data_left(&mut self) -> Result<bool, Error>
buf_read_has_data_left)Read has any data left to be read. Read moresourceimpl<L, R> Clone for Either<L, R>where
L: Clone,
R: Clone,
impl<L, R> Clone for Either<L, R>where
L: Clone,
R: Clone,
sourcefn clone(&self) -> Either<L, R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
fn clone(&self) -> Either<L, R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
sourcefn clone_from(&mut self, source: &Either<L, R>)
fn clone_from(&mut self, source: &Either<L, R>)
source. Read moresourceimpl<L, R> Deref for Either<L, R>where
L: Deref,
R: Deref<Target = <L as Deref>::Target>,
impl<L, R> Deref for Either<L, R>where
L: Deref,
R: Deref<Target = <L as Deref>::Target>,
sourcefn deref(&self) -> &<Either<L, R> as Deref>::TargetⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
fn deref(&self) -> &<Either<L, R> as Deref>::TargetⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
sourceimpl<L, R> DerefMut for Either<L, R>where
L: DerefMut,
R: DerefMut<Target = <L as Deref>::Target>,
impl<L, R> DerefMut for Either<L, R>where
L: DerefMut,
R: DerefMut<Target = <L as Deref>::Target>,
sourcefn deref_mut(&mut self) -> &mut <Either<L, R> as Deref>::TargetⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
fn deref_mut(&mut self) -> &mut <Either<L, R> as Deref>::TargetⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
sourceimpl<L, R> DoubleEndedIterator for Either<L, R>where
L: DoubleEndedIterator,
R: DoubleEndedIterator<Item = <L as Iterator>::Item>,
impl<L, R> DoubleEndedIterator for Either<L, R>where
L: DoubleEndedIterator,
R: DoubleEndedIterator<Item = <L as Iterator>::Item>,
sourcefn next_back(&mut self) -> Option<<Either<L, R> as Iterator>::Item>
fn next_back(&mut self) -> Option<<Either<L, R> as Iterator>::Item>
sourcefn rfold<Acc, G>(self, init: Acc, f: G) -> Accwhere
G: FnMut(Acc, <Either<L, R> as Iterator>::Item) -> Acc,
fn rfold<Acc, G>(self, init: Acc, f: G) -> Accwhere
G: FnMut(Acc, <Either<L, R> as Iterator>::Item) -> Acc,
sourcefn rfind<P>(&mut self, predicate: P) -> Option<<Either<L, R> as Iterator>::Item>where
P: FnMut(&<Either<L, R> as Iterator>::Item) -> bool,
fn rfind<P>(&mut self, predicate: P) -> Option<<Either<L, R> as Iterator>::Item>where
P: FnMut(&<Either<L, R> as Iterator>::Item) -> bool,
sourcefn advance_back_by(&mut self, n: usize) -> Result<(), usize>
fn advance_back_by(&mut self, n: usize) -> Result<(), usize>
iter_advance_by)n elements. Read moresourceimpl<L, R> Error for Either<L, R>where
L: Error,
R: Error,
impl<L, R> Error for Either<L, R>where
L: Error,
R: Error,
Either implements Error if both L and R implement it.
sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
sourcefn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
sourceimpl<L, R> ExactSizeIterator for Either<L, R>where
L: ExactSizeIterator,
R: ExactSizeIterator<Item = <L as Iterator>::Item>,
impl<L, R> ExactSizeIterator for Either<L, R>where
L: ExactSizeIterator,
R: ExactSizeIterator<Item = <L as Iterator>::Item>,
sourceimpl<L, R, A> Extend<A> for Either<L, R>where
L: Extend<A>,
R: Extend<A>,
impl<L, R, A> Extend<A> for Either<L, R>where
L: Extend<A>,
R: Extend<A>,
sourcefn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = A>,
fn extend<T>(&mut self, iter: T)where
T: IntoIterator<Item = A>,
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)sourceimpl<L, R> From<Result<R, L>> for Either<L, R>
impl<L, R> From<Result<R, L>> for Either<L, R>
Convert from Result to Either with Ok => Right and Err => Left.
sourcefn from(r: Result<R, L>) -> Either<L, R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
fn from(r: Result<R, L>) -> Either<L, R>ⓘNotable traits for Either<L, R>impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
L: Read,
R: Read,impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>, type Item = <L as Iterator>::Item;impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>, type Output = <L as Future>::Output;impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
sourceimpl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>,
impl<L, R> Future for Either<L, R>where
L: Future,
R: Future<Output = <L as Future>::Output>,
Either<L, R> is a future if both L and R are futures.
sourceimpl<L, R> Into<Result<R, L>> for Either<L, R>
impl<L, R> Into<Result<R, L>> for Either<L, R>
Convert from Either to Result with Right => Ok and Left => Err.
sourceimpl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>,
impl<L, R> Iterator for Either<L, R>where
L: Iterator,
R: Iterator<Item = <L as Iterator>::Item>,
Either<L, R> is an iterator if both L and R are iterators.
sourcefn next(&mut self) -> Option<<Either<L, R> as Iterator>::Item>
fn next(&mut self) -> Option<<Either<L, R> as Iterator>::Item>
sourcefn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
sourcefn fold<Acc, G>(self, init: Acc, f: G) -> Accwhere
G: FnMut(Acc, <Either<L, R> as Iterator>::Item) -> Acc,
fn fold<Acc, G>(self, init: Acc, f: G) -> Accwhere
G: FnMut(Acc, <Either<L, R> as Iterator>::Item) -> Acc,
sourcefn for_each<F>(self, f: F)where
F: FnMut(<Either<L, R> as Iterator>::Item),
fn for_each<F>(self, f: F)where
F: FnMut(<Either<L, R> as Iterator>::Item),
sourcefn count(self) -> usize
fn count(self) -> usize
sourcefn last(self) -> Option<<Either<L, R> as Iterator>::Item>
fn last(self) -> Option<<Either<L, R> as Iterator>::Item>
sourcefn nth(&mut self, n: usize) -> Option<<Either<L, R> as Iterator>::Item>
fn nth(&mut self, n: usize) -> Option<<Either<L, R> as Iterator>::Item>
nth element of the iterator. Read moresourcefn collect<B>(self) -> Bwhere
B: FromIterator<<Either<L, R> as Iterator>::Item>,
fn collect<B>(self) -> Bwhere
B: FromIterator<<Either<L, R> as Iterator>::Item>,
sourcefn partition<B, F>(self, f: F) -> (B, B)where
B: Default + Extend<<Either<L, R> as Iterator>::Item>,
F: FnMut(&<Either<L, R> as Iterator>::Item) -> bool,
fn partition<B, F>(self, f: F) -> (B, B)where
B: Default + Extend<<Either<L, R> as Iterator>::Item>,
F: FnMut(&<Either<L, R> as Iterator>::Item) -> bool,
sourcefn all<F>(&mut self, f: F) -> boolwhere
F: FnMut(<Either<L, R> as Iterator>::Item) -> bool,
fn all<F>(&mut self, f: F) -> boolwhere
F: FnMut(<Either<L, R> as Iterator>::Item) -> bool,
sourcefn any<F>(&mut self, f: F) -> boolwhere
F: FnMut(<Either<L, R> as Iterator>::Item) -> bool,
fn any<F>(&mut self, f: F) -> boolwhere
F: FnMut(<Either<L, R> as Iterator>::Item) -> bool,
sourcefn find<P>(&mut self, predicate: P) -> Option<<Either<L, R> as Iterator>::Item>where
P: FnMut(&<Either<L, R> as Iterator>::Item) -> bool,
fn find<P>(&mut self, predicate: P) -> Option<<Either<L, R> as Iterator>::Item>where
P: FnMut(&<Either<L, R> as Iterator>::Item) -> bool,
sourcefn find_map<B, F>(&mut self, f: F) -> Option<B>where
F: FnMut(<Either<L, R> as Iterator>::Item) -> Option<B>,
fn find_map<B, F>(&mut self, f: F) -> Option<B>where
F: FnMut(<Either<L, R> as Iterator>::Item) -> Option<B>,
sourcefn position<P>(&mut self, predicate: P) -> Option<usize>where
P: FnMut(<Either<L, R> as Iterator>::Item) -> bool,
fn position<P>(&mut self, predicate: P) -> Option<usize>where
P: FnMut(<Either<L, R> as Iterator>::Item) -> bool,
sourcefn next_chunk<const N: usize>(
&mut self
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
fn next_chunk<const N: usize>(
&mut self
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>
iter_next_chunk)N values. Read moresourcefn advance_by(&mut self, n: usize) -> Result<(), usize>
fn advance_by(&mut self, n: usize) -> Result<(), usize>
iter_advance_by)n elements. Read more1.28.0 · sourcefn step_by(self, step: usize) -> StepBy<Self>ⓘNotable traits for StepBy<I>impl<I> Iterator for StepBy<I>where
I: Iterator, type Item = <I as Iterator>::Item;
fn step_by(self, step: usize) -> StepBy<Self>ⓘNotable traits for StepBy<I>impl<I> Iterator for StepBy<I>where
I: Iterator, type Item = <I as Iterator>::Item;
I: Iterator, type Item = <I as Iterator>::Item;
1.0.0 · sourcefn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>ⓘNotable traits for Chain<A, B>impl<A, B> Iterator for Chain<A, B>where
A: Iterator,
B: Iterator<Item = <A as Iterator>::Item>, type Item = <A as Iterator>::Item;where
U: IntoIterator<Item = Self::Item>,
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>ⓘNotable traits for Chain<A, B>impl<A, B> Iterator for Chain<A, B>where
A: Iterator,
B: Iterator<Item = <A as Iterator>::Item>, type Item = <A as Iterator>::Item;where
U: IntoIterator<Item = Self::Item>,
A: Iterator,
B: Iterator<Item = <A as Iterator>::Item>, type Item = <A as Iterator>::Item;
1.0.0 · sourcefn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>ⓘNotable traits for Zip<A, B>impl<A, B> Iterator for Zip<A, B>where
A: Iterator,
B: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item);where
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>ⓘNotable traits for Zip<A, B>impl<A, B> Iterator for Zip<A, B>where
A: Iterator,
B: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item);where
U: IntoIterator,
A: Iterator,
B: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item);
sourcefn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>ⓘNotable traits for IntersperseWith<I, G>impl<I, G> Iterator for IntersperseWith<I, G>where
I: Iterator,
G: FnMut() -> <I as Iterator>::Item, type Item = <I as Iterator>::Item;where
G: FnMut() -> Self::Item,
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>ⓘNotable traits for IntersperseWith<I, G>impl<I, G> Iterator for IntersperseWith<I, G>where
I: Iterator,
G: FnMut() -> <I as Iterator>::Item, type Item = <I as Iterator>::Item;where
G: FnMut() -> Self::Item,
I: Iterator,
G: FnMut() -> <I as Iterator>::Item, type Item = <I as Iterator>::Item;
iter_intersperse)separator
between adjacent items of the original iterator. Read more1.0.0 · sourcefn map<B, F>(self, f: F) -> Map<Self, F>ⓘNotable traits for Map<I, F>impl<B, I, F> Iterator for Map<I, F>where
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> B, type Item = B;where
F: FnMut(Self::Item) -> B,
fn map<B, F>(self, f: F) -> Map<Self, F>ⓘNotable traits for Map<I, F>impl<B, I, F> Iterator for Map<I, F>where
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> B, type Item = B;where
F: FnMut(Self::Item) -> B,
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> B, type Item = B;
1.0.0 · sourcefn filter<P>(self, predicate: P) -> Filter<Self, P>ⓘNotable traits for Filter<I, P>impl<I, P> Iterator for Filter<I, P>where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
P: FnMut(&Self::Item) -> bool,
fn filter<P>(self, predicate: P) -> Filter<Self, P>ⓘNotable traits for Filter<I, P>impl<I, P> Iterator for Filter<I, P>where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
P: FnMut(&Self::Item) -> bool,
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;
1.0.0 · sourcefn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>ⓘNotable traits for FilterMap<I, F>impl<B, I, F> Iterator for FilterMap<I, F>where
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B;where
F: FnMut(Self::Item) -> Option<B>,
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>ⓘNotable traits for FilterMap<I, F>impl<B, I, F> Iterator for FilterMap<I, F>where
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B;where
F: FnMut(Self::Item) -> Option<B>,
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B;
1.0.0 · sourcefn enumerate(self) -> Enumerate<Self>ⓘNotable traits for Enumerate<I>impl<I> Iterator for Enumerate<I>where
I: Iterator, type Item = (usize, <I as Iterator>::Item);
fn enumerate(self) -> Enumerate<Self>ⓘNotable traits for Enumerate<I>impl<I> Iterator for Enumerate<I>where
I: Iterator, type Item = (usize, <I as Iterator>::Item);
I: Iterator, type Item = (usize, <I as Iterator>::Item);
1.0.0 · sourcefn peekable(self) -> Peekable<Self>ⓘNotable traits for Peekable<I>impl<I> Iterator for Peekable<I>where
I: Iterator, type Item = <I as Iterator>::Item;
fn peekable(self) -> Peekable<Self>ⓘNotable traits for Peekable<I>impl<I> Iterator for Peekable<I>where
I: Iterator, type Item = <I as Iterator>::Item;
I: Iterator, type Item = <I as Iterator>::Item;
1.0.0 · sourcefn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>ⓘNotable traits for SkipWhile<I, P>impl<I, P> Iterator for SkipWhile<I, P>where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
P: FnMut(&Self::Item) -> bool,
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>ⓘNotable traits for SkipWhile<I, P>impl<I, P> Iterator for SkipWhile<I, P>where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
P: FnMut(&Self::Item) -> bool,
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;
1.0.0 · sourcefn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>ⓘNotable traits for TakeWhile<I, P>impl<I, P> Iterator for TakeWhile<I, P>where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
P: FnMut(&Self::Item) -> bool,
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>ⓘNotable traits for TakeWhile<I, P>impl<I, P> Iterator for TakeWhile<I, P>where
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
P: FnMut(&Self::Item) -> bool,
I: Iterator,
P: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;
1.57.0 · sourcefn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>ⓘNotable traits for MapWhile<I, P>impl<B, I, P> Iterator for MapWhile<I, P>where
I: Iterator,
P: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B;where
P: FnMut(Self::Item) -> Option<B>,
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>ⓘNotable traits for MapWhile<I, P>impl<B, I, P> Iterator for MapWhile<I, P>where
I: Iterator,
P: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B;where
P: FnMut(Self::Item) -> Option<B>,
I: Iterator,
P: FnMut(<I as Iterator>::Item) -> Option<B>, type Item = B;
1.0.0 · sourcefn skip(self, n: usize) -> Skip<Self>ⓘNotable traits for Skip<I>impl<I> Iterator for Skip<I>where
I: Iterator, type Item = <I as Iterator>::Item;
fn skip(self, n: usize) -> Skip<Self>ⓘNotable traits for Skip<I>impl<I> Iterator for Skip<I>where
I: Iterator, type Item = <I as Iterator>::Item;
I: Iterator, type Item = <I as Iterator>::Item;
n elements. Read more1.0.0 · sourcefn take(self, n: usize) -> Take<Self>ⓘNotable traits for Take<I>impl<I> Iterator for Take<I>where
I: Iterator, type Item = <I as Iterator>::Item;
fn take(self, n: usize) -> Take<Self>ⓘNotable traits for Take<I>impl<I> Iterator for Take<I>where
I: Iterator, type Item = <I as Iterator>::Item;
I: Iterator, type Item = <I as Iterator>::Item;
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 · sourcefn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>ⓘNotable traits for Scan<I, St, F>impl<B, I, St, F> Iterator for Scan<I, St, F>where
I: Iterator,
F: FnMut(&mut St, <I as Iterator>::Item) -> Option<B>, type Item = B;where
F: FnMut(&mut St, Self::Item) -> Option<B>,
fn scan<St, B, F>(self, initial_state: St, f: F) -> Scan<Self, St, F>ⓘNotable traits for Scan<I, St, F>impl<B, I, St, F> Iterator for Scan<I, St, F>where
I: Iterator,
F: FnMut(&mut St, <I as Iterator>::Item) -> Option<B>, type Item = B;where
F: FnMut(&mut St, Self::Item) -> Option<B>,
I: Iterator,
F: FnMut(&mut St, <I as Iterator>::Item) -> Option<B>, type Item = B;
1.0.0 · sourcefn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>ⓘNotable traits for FlatMap<I, U, F>impl<I, U, F> Iterator for FlatMap<I, U, F>where
I: Iterator,
U: IntoIterator,
F: FnMut(<I as Iterator>::Item) -> U, type Item = <U as IntoIterator>::Item;where
U: IntoIterator,
F: FnMut(Self::Item) -> U,
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>ⓘNotable traits for FlatMap<I, U, F>impl<I, U, F> Iterator for FlatMap<I, U, F>where
I: Iterator,
U: IntoIterator,
F: FnMut(<I as Iterator>::Item) -> U, type Item = <U as IntoIterator>::Item;where
U: IntoIterator,
F: FnMut(Self::Item) -> U,
I: Iterator,
U: IntoIterator,
F: FnMut(<I as Iterator>::Item) -> U, type Item = <U as IntoIterator>::Item;
1.0.0 · sourcefn fuse(self) -> Fuse<Self>ⓘNotable traits for Fuse<I>impl<I> Iterator for Fuse<I>where
I: Iterator, type Item = <I as Iterator>::Item;
fn fuse(self) -> Fuse<Self>ⓘNotable traits for Fuse<I>impl<I> Iterator for Fuse<I>where
I: Iterator, type Item = <I as Iterator>::Item;
I: Iterator, type Item = <I as Iterator>::Item;
1.0.0 · sourcefn inspect<F>(self, f: F) -> Inspect<Self, F>ⓘNotable traits for Inspect<I, F>impl<I, F> Iterator for Inspect<I, F>where
I: Iterator,
F: FnMut(&<I as Iterator>::Item), type Item = <I as Iterator>::Item;where
F: FnMut(&Self::Item),
fn inspect<F>(self, f: F) -> Inspect<Self, F>ⓘNotable traits for Inspect<I, F>impl<I, F> Iterator for Inspect<I, F>where
I: Iterator,
F: FnMut(&<I as Iterator>::Item), type Item = <I as Iterator>::Item;where
F: FnMut(&Self::Item),
I: Iterator,
F: FnMut(&<I as Iterator>::Item), type Item = <I as Iterator>::Item;
1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
sourcefn collect_into<E>(self, collection: &mut E) -> &mut Ewhere
E: Extend<Self::Item>,
fn collect_into<E>(self, collection: &mut E) -> &mut Ewhere
E: Extend<Self::Item>,
iter_collect_into)sourcefn is_partitioned<P>(self, predicate: P) -> boolwhere
P: FnMut(Self::Item) -> bool,
fn is_partitioned<P>(self, predicate: P) -> boolwhere
P: FnMut(Self::Item) -> bool,
iter_is_partitioned)true precede all those that return false. Read more1.27.0 · sourcefn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
F: FnMut(B, Self::Item) -> R,
R: Try<Output = B>,
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> Rwhere
F: FnMut(B, Self::Item) -> R,
R: Try<Output = B>,
1.27.0 · sourcefn try_for_each<F, R>(&mut self, f: F) -> Rwhere
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,
fn try_for_each<F, R>(&mut self, f: F) -> Rwhere
F: FnMut(Self::Item) -> R,
R: Try<Output = ()>,
1.51.0 · sourcefn reduce<F>(self, f: F) -> Option<Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Self::Item,
fn reduce<F>(self, f: F) -> Option<Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Self::Item,
sourcefn try_reduce<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere
F: FnMut(Self::Item, Self::Item) -> R,
R: Try<Output = Self::Item>,
<R as Try>::Residual: Residual<Option<Self::Item>>,
fn try_reduce<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryTypewhere
F: FnMut(Self::Item, Self::Item) -> R,
R: Try<Output = Self::Item>,
<R as Try>::Residual: Residual<Option<Self::Item>>,
iterator_try_reduce)sourcefn try_find<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere
F: FnMut(&Self::Item) -> R,
R: Try<Output = bool>,
<R as Try>::Residual: Residual<Option<Self::Item>>,
fn try_find<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryTypewhere
F: FnMut(&Self::Item) -> R,
R: Try<Output = bool>,
<R as Try>::Residual: Residual<Option<Self::Item>>,
try_find)1.6.0 · sourcefn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where
B: Ord,
F: FnMut(&Self::Item) -> B,
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>where
B: Ord,
F: FnMut(&Self::Item) -> B,
1.15.0 · sourcefn max_by<F>(self, compare: F) -> Option<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn max_by<F>(self, compare: F) -> Option<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.6.0 · sourcefn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where
B: Ord,
F: FnMut(&Self::Item) -> B,
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>where
B: Ord,
F: FnMut(&Self::Item) -> B,
1.15.0 · sourcefn min_by<F>(self, compare: F) -> Option<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn min_by<F>(self, compare: F) -> Option<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
1.0.0 · sourcefn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Iterator<Item = (A, B)>,
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)where
FromA: Default + Extend<A>,
FromB: Default + Extend<B>,
Self: Iterator<Item = (A, B)>,
1.36.0 · sourcefn copied<'a, T>(self) -> Copied<Self>ⓘNotable traits for Copied<I>impl<'a, I, T> Iterator for Copied<I>where
T: 'a + Copy,
I: Iterator<Item = &'a T>, type Item = T;where
T: 'a + Copy,
Self: Iterator<Item = &'a T>,
fn copied<'a, T>(self) -> Copied<Self>ⓘNotable traits for Copied<I>impl<'a, I, T> Iterator for Copied<I>where
T: 'a + Copy,
I: Iterator<Item = &'a T>, type Item = T;where
T: 'a + Copy,
Self: Iterator<Item = &'a T>,
T: 'a + Copy,
I: Iterator<Item = &'a T>, type Item = T;
1.0.0 · sourcefn cloned<'a, T>(self) -> Cloned<Self>ⓘNotable traits for Cloned<I>impl<'a, I, T> Iterator for Cloned<I>where
T: 'a + Clone,
I: Iterator<Item = &'a T>, type Item = T;where
T: 'a + Clone,
Self: Iterator<Item = &'a T>,
fn cloned<'a, T>(self) -> Cloned<Self>ⓘNotable traits for Cloned<I>impl<'a, I, T> Iterator for Cloned<I>where
T: 'a + Clone,
I: Iterator<Item = &'a T>, type Item = T;where
T: 'a + Clone,
Self: Iterator<Item = &'a T>,
T: 'a + Clone,
I: Iterator<Item = &'a T>, type Item = T;
sourcefn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>ⓘNotable traits for ArrayChunks<I, N>impl<I, const N: usize> Iterator for ArrayChunks<I, N>where
I: Iterator, type Item = [<I as Iterator>::Item; N];
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>ⓘNotable traits for ArrayChunks<I, N>impl<I, const N: usize> Iterator for ArrayChunks<I, N>where
I: Iterator, type Item = [<I as Iterator>::Item; N];
I: Iterator, type Item = [<I as Iterator>::Item; N];
iter_array_chunks)N elements of the iterator at a time. Read more1.11.0 · sourcefn sum<S>(self) -> Swhere
S: Sum<Self::Item>,
fn sum<S>(self) -> Swhere
S: Sum<Self::Item>,
1.11.0 · sourcefn product<P>(self) -> Pwhere
P: Product<Self::Item>,
fn product<P>(self) -> Pwhere
P: Product<Self::Item>,
sourcefn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
fn cmp_by<I, F>(self, other: I, cmp: F) -> Orderingwhere
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Ordering,
iter_order_by)Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 · sourcefn partial_cmp<I>(self, other: I) -> Option<Ordering>where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn partial_cmp<I>(self, other: I) -> Option<Ordering>where
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
sourcefn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
iter_order_by)Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 · sourcefn eq<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
fn eq<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
sourcefn eq_by<I, F>(self, other: I, eq: F) -> boolwhere
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
fn eq_by<I, F>(self, other: I, eq: F) -> boolwhere
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> bool,
iter_order_by)1.5.0 · sourcefn ne<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
fn ne<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialEq<<I as IntoIterator>::Item>,
1.5.0 · sourcefn lt<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn lt<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
Iterator are lexicographically
less than those of another. Read more1.5.0 · sourcefn le<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn le<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
Iterator are lexicographically
less or equal to those of another. Read more1.5.0 · sourcefn gt<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn gt<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
Iterator are lexicographically
greater than those of another. Read more1.5.0 · sourcefn ge<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
fn ge<I>(self, other: I) -> boolwhere
I: IntoIterator,
Self::Item: PartialOrd<<I as IntoIterator>::Item>,
Iterator are lexicographically
greater than or equal to those of another. Read moresourcefn is_sorted_by<F>(self, compare: F) -> boolwhere
F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
fn is_sorted_by<F>(self, compare: F) -> boolwhere
F: FnMut(&Self::Item, &Self::Item) -> Option<Ordering>,
is_sorted)sourcefn is_sorted_by_key<F, K>(self, f: F) -> boolwhere
F: FnMut(Self::Item) -> K,
K: PartialOrd<K>,
fn is_sorted_by_key<F, K>(self, f: F) -> boolwhere
F: FnMut(Self::Item) -> K,
K: PartialOrd<K>,
is_sorted)sourceimpl<L, R> Ord for Either<L, R>where
L: Ord,
R: Ord,
impl<L, R> Ord for Either<L, R>where
L: Ord,
R: Ord,
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
sourceimpl<L, R> PartialEq<Either<L, R>> for Either<L, R>where
L: PartialEq<L>,
R: PartialEq<R>,
impl<L, R> PartialEq<Either<L, R>> for Either<L, R>where
L: PartialEq<L>,
R: PartialEq<R>,
sourceimpl<L, R> PartialOrd<Either<L, R>> for Either<L, R>where
L: PartialOrd<L>,
R: PartialOrd<R>,
impl<L, R> PartialOrd<Either<L, R>> for Either<L, R>where
L: PartialOrd<L>,
R: PartialOrd<R>,
sourcefn partial_cmp(&self, other: &Either<L, R>) -> Option<Ordering>
fn partial_cmp(&self, other: &Either<L, R>) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moresourceimpl<L, R> Read for Either<L, R>where
L: Read,
R: Read,
impl<L, R> Read for Either<L, R>where
L: Read,
R: Read,
Either<L, R> implements Read if both L and R do.
Requires crate feature "use_std"
sourcefn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>
sourcefn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
buf. Read moresourcefn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>
buf. Read moresourcefn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
buf. Read more1.36.0 · sourcefn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
read, except that it reads into a slice of buffers. Read moresourcefn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector)sourcefn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)sourcefn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf)cursor. Read more1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
Read. Read more1.0.0 · sourcefn bytes(self) -> Bytes<Self>ⓘNotable traits for Bytes<R>impl<R> Iterator for Bytes<R>where
R: Read, type Item = Result<u8, Error>;
fn bytes(self) -> Bytes<Self>ⓘNotable traits for Bytes<R>impl<R> Iterator for Bytes<R>where
R: Read, type Item = Result<u8, Error>;
R: Read, type Item = Result<u8, Error>;
sourceimpl<L, R> Seek for Either<L, R>where
L: Seek,
R: Seek,
impl<L, R> Seek for Either<L, R>where
L: Seek,
R: Seek,
Either<L, R> implements Seek if both L and R do.
Requires crate feature "use_std"
sourcefn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>
fn seek(&mut self, pos: SeekFrom) -> Result<u64, Error>
1.55.0 · sourcefn rewind(&mut self) -> Result<(), Error>
fn rewind(&mut self) -> Result<(), Error>
sourceimpl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
impl<L, R> Write for Either<L, R>where
L: Write,
R: Write,
Either<L, R> implements Write if both L and R do.
Requires crate feature "use_std"
sourcefn write(&mut self, buf: &[u8]) -> Result<usize, Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
sourcefn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
sourcefn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>
fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>
sourcefn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
sourcefn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector)impl<L, R> Copy for Either<L, R>where
L: Copy,
R: Copy,
impl<L, R> Eq for Either<L, R>where
L: Eq,
R: Eq,
impl<L, R> FusedIterator for Either<L, R>where
L: FusedIterator,
R: FusedIterator<Item = <L as Iterator>::Item>,
impl<L, R> StructuralEq for Either<L, R>
impl<L, R> StructuralPartialEq for Either<L, R>
Auto Trait Implementations
impl<L, R> RefUnwindSafe for Either<L, R>where
L: RefUnwindSafe,
R: RefUnwindSafe,
impl<L, R> Send for Either<L, R>where
L: Send,
R: Send,
impl<L, R> Sync for Either<L, R>where
L: Sync,
R: Sync,
impl<L, R> Unpin for Either<L, R>where
L: Unpin,
R: Unpin,
impl<L, R> UnwindSafe for Either<L, R>where
L: UnwindSafe,
R: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> ClampCast for Twhere
T: 'static + PartialOrd<T> + Copy,
impl<T> ClampCast for Twhere
T: 'static + PartialOrd<T> + Copy,
fn clamp_cast<O>(self) -> Owhere
Self: AsPrimitive<O> + Datum,
O: AsPrimitive<Self> + Bounded + Datum,
sourceimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait. Read moresourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait. Read moresourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s. Read moresourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s. Read moresourceimpl<T> DowncastSync for Twhere
T: Any + Send + Sync,
impl<T> DowncastSync for Twhere
T: Any + Send + Sync,
sourceimpl<F> IntoFuture for Fwhere
F: Future,
impl<F> IntoFuture for Fwhere
F: Future,
type IntoFuture = F
type IntoFuture = F
sourcefn into_future(self) -> <F as IntoFuture>::IntoFuture
fn into_future(self) -> <F as IntoFuture>::IntoFuture
sourceimpl<I> IntoIterator for Iwhere
I: Iterator,
impl<I> IntoIterator for Iwhere
I: Iterator,
sourceimpl<T> Itertools for Twhere
T: Iterator + ?Sized,
impl<T> Itertools for Twhere
T: Iterator + ?Sized,
sourcefn interleave<J>(
self,
other: J
) -> Interleave<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for Interleave<I, J>impl<I, J> Iterator for Interleave<I, J>where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
J: IntoIterator<Item = Self::Item>,
fn interleave<J>(
self,
other: J
) -> Interleave<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for Interleave<I, J>impl<I, J> Iterator for Interleave<I, J>where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
J: IntoIterator<Item = Self::Item>,
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>, type Item = <I as Iterator>::Item;
sourcefn interleave_shortest<J>(
self,
other: J
) -> InterleaveShortest<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for InterleaveShortest<I, J>impl<I, J> Iterator for InterleaveShortest<I, J>where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
J: IntoIterator<Item = Self::Item>,
fn interleave_shortest<J>(
self,
other: J
) -> InterleaveShortest<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for InterleaveShortest<I, J>impl<I, J> Iterator for InterleaveShortest<I, J>where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
J: IntoIterator<Item = Self::Item>,
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>, type Item = <I as Iterator>::Item;
sourcefn intersperse(
self,
element: Self::Item
) -> IntersperseWith<Self, IntersperseElementSimple<Self::Item>>ⓘNotable traits for IntersperseWith<I, ElemF>impl<I, ElemF> Iterator for IntersperseWith<I, ElemF>where
I: Iterator,
ElemF: IntersperseElement<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
Self::Item: Clone,
fn intersperse(
self,
element: Self::Item
) -> IntersperseWith<Self, IntersperseElementSimple<Self::Item>>ⓘNotable traits for IntersperseWith<I, ElemF>impl<I, ElemF> Iterator for IntersperseWith<I, ElemF>where
I: Iterator,
ElemF: IntersperseElement<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
Self::Item: Clone,
I: Iterator,
ElemF: IntersperseElement<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;
sourcefn intersperse_with<F>(self, element: F) -> IntersperseWith<Self, F>ⓘNotable traits for IntersperseWith<I, ElemF>impl<I, ElemF> Iterator for IntersperseWith<I, ElemF>where
I: Iterator,
ElemF: IntersperseElement<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
F: FnMut() -> Self::Item,
fn intersperse_with<F>(self, element: F) -> IntersperseWith<Self, F>ⓘNotable traits for IntersperseWith<I, ElemF>impl<I, ElemF> Iterator for IntersperseWith<I, ElemF>where
I: Iterator,
ElemF: IntersperseElement<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
F: FnMut() -> Self::Item,
I: Iterator,
ElemF: IntersperseElement<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;
sourcefn zip_longest<J>(
self,
other: J
) -> ZipLongest<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for ZipLongest<T, U>impl<T, U> Iterator for ZipLongest<T, U>where
T: Iterator,
U: Iterator, type Item = EitherOrBoth<<T as Iterator>::Item, <U as Iterator>::Item>;where
J: IntoIterator,
fn zip_longest<J>(
self,
other: J
) -> ZipLongest<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for ZipLongest<T, U>impl<T, U> Iterator for ZipLongest<T, U>where
T: Iterator,
U: Iterator, type Item = EitherOrBoth<<T as Iterator>::Item, <U as Iterator>::Item>;where
J: IntoIterator,
T: Iterator,
U: Iterator, type Item = EitherOrBoth<<T as Iterator>::Item, <U as Iterator>::Item>;
sourcefn zip_eq<J>(self, other: J) -> ZipEq<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for ZipEq<I, J>impl<I, J> Iterator for ZipEq<I, J>where
I: Iterator,
J: Iterator, type Item = (<I as Iterator>::Item, <J as Iterator>::Item);where
J: IntoIterator,
fn zip_eq<J>(self, other: J) -> ZipEq<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for ZipEq<I, J>impl<I, J> Iterator for ZipEq<I, J>where
I: Iterator,
J: Iterator, type Item = (<I as Iterator>::Item, <J as Iterator>::Item);where
J: IntoIterator,
I: Iterator,
J: Iterator, type Item = (<I as Iterator>::Item, <J as Iterator>::Item);
sourcefn batching<B, F>(self, f: F) -> Batching<Self, F>ⓘNotable traits for Batching<I, F>impl<B, F, I> Iterator for Batching<I, F>where
I: Iterator,
F: FnMut(&mut I) -> Option<B>, type Item = B;where
F: FnMut(&mut Self) -> Option<B>,
fn batching<B, F>(self, f: F) -> Batching<Self, F>ⓘNotable traits for Batching<I, F>impl<B, F, I> Iterator for Batching<I, F>where
I: Iterator,
F: FnMut(&mut I) -> Option<B>, type Item = B;where
F: FnMut(&mut Self) -> Option<B>,
I: Iterator,
F: FnMut(&mut I) -> Option<B>, type Item = B;
sourcefn group_by<K, F>(self, key: F) -> GroupBy<K, Self, F>where
F: FnMut(&Self::Item) -> K,
K: PartialEq<K>,
fn group_by<K, F>(self, key: F) -> GroupBy<K, Self, F>where
F: FnMut(&Self::Item) -> K,
K: PartialEq<K>,
sourcefn chunks(self, size: usize) -> IntoChunks<Self>
fn chunks(self, size: usize) -> IntoChunks<Self>
sourcefn tuple_windows<T>(self) -> TupleWindows<Self, T>ⓘNotable traits for TupleWindows<I, T>impl<I, T> Iterator for TupleWindows<I, T>where
I: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple + Clone,
<T as TupleCollect>::Item: Clone, type Item = T;where
Self: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
<T as TupleCollect>::Item: Clone,
fn tuple_windows<T>(self) -> TupleWindows<Self, T>ⓘNotable traits for TupleWindows<I, T>impl<I, T> Iterator for TupleWindows<I, T>where
I: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple + Clone,
<T as TupleCollect>::Item: Clone, type Item = T;where
Self: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
<T as TupleCollect>::Item: Clone,
I: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple + Clone,
<T as TupleCollect>::Item: Clone, type Item = T;
sourcefn circular_tuple_windows<T>(self) -> CircularTupleWindows<Self, T>ⓘNotable traits for CircularTupleWindows<I, T>impl<I, T> Iterator for CircularTupleWindows<I, T>where
I: Iterator<Item = <T as TupleCollect>::Item> + Clone,
T: TupleCollect + Clone,
<T as TupleCollect>::Item: Clone, type Item = T;where
Self: Clone + Iterator<Item = <T as TupleCollect>::Item> + ExactSizeIterator,
T: TupleCollect + Clone,
<T as TupleCollect>::Item: Clone,
fn circular_tuple_windows<T>(self) -> CircularTupleWindows<Self, T>ⓘNotable traits for CircularTupleWindows<I, T>impl<I, T> Iterator for CircularTupleWindows<I, T>where
I: Iterator<Item = <T as TupleCollect>::Item> + Clone,
T: TupleCollect + Clone,
<T as TupleCollect>::Item: Clone, type Item = T;where
Self: Clone + Iterator<Item = <T as TupleCollect>::Item> + ExactSizeIterator,
T: TupleCollect + Clone,
<T as TupleCollect>::Item: Clone,
I: Iterator<Item = <T as TupleCollect>::Item> + Clone,
T: TupleCollect + Clone,
<T as TupleCollect>::Item: Clone, type Item = T;
sourcefn tuples<T>(self) -> Tuples<Self, T>ⓘNotable traits for Tuples<I, T>impl<I, T> Iterator for Tuples<I, T>where
I: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple, type Item = T;where
Self: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
fn tuples<T>(self) -> Tuples<Self, T>ⓘNotable traits for Tuples<I, T>impl<I, T> Iterator for Tuples<I, T>where
I: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple, type Item = T;where
Self: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
I: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple, type Item = T;
sourcefn tee(self) -> (Tee<Self>, Tee<Self>)where
Self::Item: Clone,
fn tee(self) -> (Tee<Self>, Tee<Self>)where
Self::Item: Clone,
sourcefn step(self, n: usize) -> Step<Self>ⓘNotable traits for Step<I>impl<I> Iterator for Step<I>where
I: Iterator, type Item = <I as Iterator>::Item;
fn step(self, n: usize) -> Step<Self>ⓘNotable traits for Step<I>impl<I> Iterator for Step<I>where
I: Iterator, type Item = <I as Iterator>::Item;
I: Iterator, type Item = <I as Iterator>::Item;
Use std .step_by() instead
n elements in the base iterator
for each iteration. Read moresourcefn map_into<R>(self) -> MapSpecialCase<Self, MapSpecialCaseFnInto<R>>where
Self::Item: Into<R>,
fn map_into<R>(self) -> MapSpecialCase<Self, MapSpecialCaseFnInto<R>>where
Self::Item: Into<R>,
sourcefn map_results<F, T, U, E>(
self,
f: F
) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>where
Self: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> U,
fn map_results<F, T, U, E>(
self,
f: F
) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>where
Self: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> U,
Use .map_ok() instead
.map_ok().sourcefn map_ok<F, T, U, E>(self, f: F) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>where
Self: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> U,
fn map_ok<F, T, U, E>(self, f: F) -> MapSpecialCase<Self, MapSpecialCaseFnOk<F>>where
Self: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> U,
Result::Ok value. Result::Err values are
unchanged. Read moresourcefn filter_ok<F, T, E>(self, f: F) -> FilterOk<Self, F>ⓘNotable traits for FilterOk<I, F>impl<I, F, T, E> Iterator for FilterOk<I, F>where
I: Iterator<Item = Result<T, E>>,
F: FnMut(&T) -> bool, type Item = Result<T, E>;where
Self: Iterator<Item = Result<T, E>>,
F: FnMut(&T) -> bool,
fn filter_ok<F, T, E>(self, f: F) -> FilterOk<Self, F>ⓘNotable traits for FilterOk<I, F>impl<I, F, T, E> Iterator for FilterOk<I, F>where
I: Iterator<Item = Result<T, E>>,
F: FnMut(&T) -> bool, type Item = Result<T, E>;where
Self: Iterator<Item = Result<T, E>>,
F: FnMut(&T) -> bool,
I: Iterator<Item = Result<T, E>>,
F: FnMut(&T) -> bool, type Item = Result<T, E>;
Result::Ok
value with the provided closure. Result::Err values are
unchanged. Read moresourcefn filter_map_ok<F, T, U, E>(self, f: F) -> FilterMapOk<Self, F>ⓘNotable traits for FilterMapOk<I, F>impl<I, F, T, U, E> Iterator for FilterMapOk<I, F>where
I: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> Option<U>, type Item = Result<U, E>;where
Self: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> Option<U>,
fn filter_map_ok<F, T, U, E>(self, f: F) -> FilterMapOk<Self, F>ⓘNotable traits for FilterMapOk<I, F>impl<I, F, T, U, E> Iterator for FilterMapOk<I, F>where
I: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> Option<U>, type Item = Result<U, E>;where
Self: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> Option<U>,
I: Iterator<Item = Result<T, E>>,
F: FnMut(T) -> Option<U>, type Item = Result<U, E>;
Result::Ok value with the provided closure. Result::Err
values are unchanged. Read moresourcefn flatten_ok<T, E>(self) -> FlattenOk<Self, T, E>ⓘNotable traits for FlattenOk<I, T, E>impl<I, T, E> Iterator for FlattenOk<I, T, E>where
I: Iterator<Item = Result<T, E>>,
T: IntoIterator, type Item = Result<<T as IntoIterator>::Item, E>;where
Self: Iterator<Item = Result<T, E>>,
T: IntoIterator,
fn flatten_ok<T, E>(self) -> FlattenOk<Self, T, E>ⓘNotable traits for FlattenOk<I, T, E>impl<I, T, E> Iterator for FlattenOk<I, T, E>where
I: Iterator<Item = Result<T, E>>,
T: IntoIterator, type Item = Result<<T as IntoIterator>::Item, E>;where
Self: Iterator<Item = Result<T, E>>,
T: IntoIterator,
I: Iterator<Item = Result<T, E>>,
T: IntoIterator, type Item = Result<<T as IntoIterator>::Item, E>;
Result::Ok value into
a series of Result::Ok values. Result::Err values are unchanged. Read moresourcefn merge<J>(
self,
other: J
) -> MergeBy<Self, <J as IntoIterator>::IntoIter, MergeLte>ⓘNotable traits for MergeBy<I, J, F>impl<I, J, F> Iterator for MergeBy<I, J, F>where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>,
F: MergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
J: IntoIterator<Item = Self::Item>,
Self::Item: PartialOrd<Self::Item>,
fn merge<J>(
self,
other: J
) -> MergeBy<Self, <J as IntoIterator>::IntoIter, MergeLte>ⓘNotable traits for MergeBy<I, J, F>impl<I, J, F> Iterator for MergeBy<I, J, F>where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>,
F: MergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
J: IntoIterator<Item = Self::Item>,
Self::Item: PartialOrd<Self::Item>,
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>,
F: MergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;
sourcefn merge_by<J, F>(
self,
other: J,
is_first: F
) -> MergeBy<Self, <J as IntoIterator>::IntoIter, F>ⓘNotable traits for MergeBy<I, J, F>impl<I, J, F> Iterator for MergeBy<I, J, F>where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>,
F: MergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
J: IntoIterator<Item = Self::Item>,
F: FnMut(&Self::Item, &Self::Item) -> bool,
fn merge_by<J, F>(
self,
other: J,
is_first: F
) -> MergeBy<Self, <J as IntoIterator>::IntoIter, F>ⓘNotable traits for MergeBy<I, J, F>impl<I, J, F> Iterator for MergeBy<I, J, F>where
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>,
F: MergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
J: IntoIterator<Item = Self::Item>,
F: FnMut(&Self::Item, &Self::Item) -> bool,
I: Iterator,
J: Iterator<Item = <I as Iterator>::Item>,
F: MergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;
sourcefn merge_join_by<J, F>(
self,
other: J,
cmp_fn: F
) -> MergeJoinBy<Self, <J as IntoIterator>::IntoIter, F>ⓘNotable traits for MergeJoinBy<I, J, F>impl<I, J, F> Iterator for MergeJoinBy<I, J, F>where
I: Iterator,
J: Iterator,
F: FnMut(&<I as Iterator>::Item, &<J as Iterator>::Item) -> Ordering, type Item = EitherOrBoth<<I as Iterator>::Item, <J as Iterator>::Item>;where
J: IntoIterator,
F: FnMut(&Self::Item, &<J as IntoIterator>::Item) -> Ordering,
fn merge_join_by<J, F>(
self,
other: J,
cmp_fn: F
) -> MergeJoinBy<Self, <J as IntoIterator>::IntoIter, F>ⓘNotable traits for MergeJoinBy<I, J, F>impl<I, J, F> Iterator for MergeJoinBy<I, J, F>where
I: Iterator,
J: Iterator,
F: FnMut(&<I as Iterator>::Item, &<J as Iterator>::Item) -> Ordering, type Item = EitherOrBoth<<I as Iterator>::Item, <J as Iterator>::Item>;where
J: IntoIterator,
F: FnMut(&Self::Item, &<J as IntoIterator>::Item) -> Ordering,
I: Iterator,
J: Iterator,
F: FnMut(&<I as Iterator>::Item, &<J as Iterator>::Item) -> Ordering, type Item = EitherOrBoth<<I as Iterator>::Item, <J as Iterator>::Item>;
sourcefn kmerge(self) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, KMergeByLt>ⓘNotable traits for KMergeBy<I, F>impl<I, F> Iterator for KMergeBy<I, F>where
I: Iterator,
F: KMergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
Self::Item: IntoIterator,
<Self::Item as IntoIterator>::Item: PartialOrd<<Self::Item as IntoIterator>::Item>,
fn kmerge(self) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, KMergeByLt>ⓘNotable traits for KMergeBy<I, F>impl<I, F> Iterator for KMergeBy<I, F>where
I: Iterator,
F: KMergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
Self::Item: IntoIterator,
<Self::Item as IntoIterator>::Item: PartialOrd<<Self::Item as IntoIterator>::Item>,
I: Iterator,
F: KMergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;
sourcefn kmerge_by<F>(
self,
first: F
) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, F>ⓘNotable traits for KMergeBy<I, F>impl<I, F> Iterator for KMergeBy<I, F>where
I: Iterator,
F: KMergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
F: FnMut(&<Self::Item as IntoIterator>::Item, &<Self::Item as IntoIterator>::Item) -> bool,
Self::Item: IntoIterator,
fn kmerge_by<F>(
self,
first: F
) -> KMergeBy<<Self::Item as IntoIterator>::IntoIter, F>ⓘNotable traits for KMergeBy<I, F>impl<I, F> Iterator for KMergeBy<I, F>where
I: Iterator,
F: KMergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;where
F: FnMut(&<Self::Item as IntoIterator>::Item, &<Self::Item as IntoIterator>::Item) -> bool,
Self::Item: IntoIterator,
I: Iterator,
F: KMergePredicate<<I as Iterator>::Item>, type Item = <I as Iterator>::Item;
sourcefn cartesian_product<J>(
self,
other: J
) -> Product<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for Product<I, J>impl<I, J> Iterator for Product<I, J>where
I: Iterator,
J: Clone + Iterator,
<I as Iterator>::Item: Clone, type Item = (<I as Iterator>::Item, <J as Iterator>::Item);where
J: IntoIterator,
Self::Item: Clone,
<J as IntoIterator>::IntoIter: Clone,
fn cartesian_product<J>(
self,
other: J
) -> Product<Self, <J as IntoIterator>::IntoIter>ⓘNotable traits for Product<I, J>impl<I, J> Iterator for Product<I, J>where
I: Iterator,
J: Clone + Iterator,
<I as Iterator>::Item: Clone, type Item = (<I as Iterator>::Item, <J as Iterator>::Item);where
J: IntoIterator,
Self::Item: Clone,
<J as IntoIterator>::IntoIter: Clone,
I: Iterator,
J: Clone + Iterator,
<I as Iterator>::Item: Clone, type Item = (<I as Iterator>::Item, <J as Iterator>::Item);
self and J. Read moresourcefn multi_cartesian_product(
self
) -> MultiProduct<<Self::Item as IntoIterator>::IntoIter>ⓘNotable traits for MultiProduct<I>impl<I> Iterator for MultiProduct<I>where
I: Iterator + Clone,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: IntoIterator,
<Self::Item as IntoIterator>::IntoIter: Clone,
<Self::Item as IntoIterator>::Item: Clone,
fn multi_cartesian_product(
self
) -> MultiProduct<<Self::Item as IntoIterator>::IntoIter>ⓘNotable traits for MultiProduct<I>impl<I> Iterator for MultiProduct<I>where
I: Iterator + Clone,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: IntoIterator,
<Self::Item as IntoIterator>::IntoIter: Clone,
<Self::Item as IntoIterator>::Item: Clone,
I: Iterator + Clone,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;
self. Read moresourcefn coalesce<F>(self, f: F) -> CoalesceBy<Self, F, Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Result<Self::Item, (Self::Item, Self::Item)>,
fn coalesce<F>(self, f: F) -> CoalesceBy<Self, F, Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Result<Self::Item, (Self::Item, Self::Item)>,
sourcefn dedup(self) -> CoalesceBy<Self, DedupPred2CoalescePred<DedupEq>, Self::Item>where
Self::Item: PartialEq<Self::Item>,
fn dedup(self) -> CoalesceBy<Self, DedupPred2CoalescePred<DedupEq>, Self::Item>where
Self::Item: PartialEq<Self::Item>,
sourcefn dedup_by<Cmp>(
self,
cmp: Cmp
) -> CoalesceBy<Self, DedupPred2CoalescePred<Cmp>, Self::Item>where
Cmp: FnMut(&Self::Item, &Self::Item) -> bool,
fn dedup_by<Cmp>(
self,
cmp: Cmp
) -> CoalesceBy<Self, DedupPred2CoalescePred<Cmp>, Self::Item>where
Cmp: FnMut(&Self::Item, &Self::Item) -> bool,
sourcefn dedup_with_count(
self
) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<DedupEq>, (usize, Self::Item)>
fn dedup_with_count(
self
) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<DedupEq>, (usize, Self::Item)>
sourcefn dedup_by_with_count<Cmp>(
self,
cmp: Cmp
) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<Cmp>, (usize, Self::Item)>where
Cmp: FnMut(&Self::Item, &Self::Item) -> bool,
fn dedup_by_with_count<Cmp>(
self,
cmp: Cmp
) -> CoalesceBy<Self, DedupPredWithCount2CoalescePred<Cmp>, (usize, Self::Item)>where
Cmp: FnMut(&Self::Item, &Self::Item) -> bool,
sourcefn duplicates(self) -> DuplicatesBy<Self, Self::Item, ById>where
Self::Item: Eq,
Self::Item: Hash,
fn duplicates(self) -> DuplicatesBy<Self, Self::Item, ById>where
Self::Item: Eq,
Self::Item: Hash,
sourcefn duplicates_by<V, F>(self, f: F) -> DuplicatesBy<Self, V, ByFn<F>>where
V: Eq + Hash,
F: FnMut(&Self::Item) -> V,
fn duplicates_by<V, F>(self, f: F) -> DuplicatesBy<Self, V, ByFn<F>>where
V: Eq + Hash,
F: FnMut(&Self::Item) -> V,
sourcefn unique(self) -> Unique<Self>ⓘNotable traits for Unique<I>impl<I> Iterator for Unique<I>where
I: Iterator,
<I as Iterator>::Item: Eq,
<I as Iterator>::Item: Hash,
<I as Iterator>::Item: Clone, type Item = <I as Iterator>::Item;where
Self::Item: Clone,
Self::Item: Eq,
Self::Item: Hash,
fn unique(self) -> Unique<Self>ⓘNotable traits for Unique<I>impl<I> Iterator for Unique<I>where
I: Iterator,
<I as Iterator>::Item: Eq,
<I as Iterator>::Item: Hash,
<I as Iterator>::Item: Clone, type Item = <I as Iterator>::Item;where
Self::Item: Clone,
Self::Item: Eq,
Self::Item: Hash,
I: Iterator,
<I as Iterator>::Item: Eq,
<I as Iterator>::Item: Hash,
<I as Iterator>::Item: Clone, type Item = <I as Iterator>::Item;
sourcefn unique_by<V, F>(self, f: F) -> UniqueBy<Self, V, F>ⓘNotable traits for UniqueBy<I, V, F>impl<I, V, F> Iterator for UniqueBy<I, V, F>where
I: Iterator,
V: Eq + Hash,
F: FnMut(&<I as Iterator>::Item) -> V, type Item = <I as Iterator>::Item;where
V: Eq + Hash,
F: FnMut(&Self::Item) -> V,
fn unique_by<V, F>(self, f: F) -> UniqueBy<Self, V, F>ⓘNotable traits for UniqueBy<I, V, F>impl<I, V, F> Iterator for UniqueBy<I, V, F>where
I: Iterator,
V: Eq + Hash,
F: FnMut(&<I as Iterator>::Item) -> V, type Item = <I as Iterator>::Item;where
V: Eq + Hash,
F: FnMut(&Self::Item) -> V,
I: Iterator,
V: Eq + Hash,
F: FnMut(&<I as Iterator>::Item) -> V, type Item = <I as Iterator>::Item;
sourcefn peeking_take_while<F>(&mut self, accept: F) -> PeekingTakeWhile<'_, Self, F>ⓘNotable traits for PeekingTakeWhile<'a, I, F>impl<'a, I, F> Iterator for PeekingTakeWhile<'a, I, F>where
I: PeekingNext,
F: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
Self: PeekingNext,
F: FnMut(&Self::Item) -> bool,
fn peeking_take_while<F>(&mut self, accept: F) -> PeekingTakeWhile<'_, Self, F>ⓘNotable traits for PeekingTakeWhile<'a, I, F>impl<'a, I, F> Iterator for PeekingTakeWhile<'a, I, F>where
I: PeekingNext,
F: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
Self: PeekingNext,
F: FnMut(&Self::Item) -> bool,
I: PeekingNext,
F: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;
accept returns true. Read moresourcefn take_while_ref<F>(&mut self, accept: F) -> TakeWhileRef<'_, Self, F>ⓘNotable traits for TakeWhileRef<'a, I, F>impl<'a, I, F> Iterator for TakeWhileRef<'a, I, F>where
I: Iterator + Clone,
F: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
Self: Clone,
F: FnMut(&Self::Item) -> bool,
fn take_while_ref<F>(&mut self, accept: F) -> TakeWhileRef<'_, Self, F>ⓘNotable traits for TakeWhileRef<'a, I, F>impl<'a, I, F> Iterator for TakeWhileRef<'a, I, F>where
I: Iterator + Clone,
F: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;where
Self: Clone,
F: FnMut(&Self::Item) -> bool,
I: Iterator + Clone,
F: FnMut(&<I as Iterator>::Item) -> bool, type Item = <I as Iterator>::Item;
Clone-able iterator
to only pick off elements while the predicate accept returns true. Read moresourcefn while_some<A>(self) -> WhileSome<Self>ⓘNotable traits for WhileSome<I>impl<I, A> Iterator for WhileSome<I>where
I: Iterator<Item = Option<A>>, type Item = A;where
Self: Iterator<Item = Option<A>>,
fn while_some<A>(self) -> WhileSome<Self>ⓘNotable traits for WhileSome<I>impl<I, A> Iterator for WhileSome<I>where
I: Iterator<Item = Option<A>>, type Item = A;where
Self: Iterator<Item = Option<A>>,
I: Iterator<Item = Option<A>>, type Item = A;
Option<A> iterator elements
and produces A. Stops on the first None encountered. Read moresourcefn tuple_combinations<T>(self) -> TupleCombinations<Self, T>ⓘNotable traits for TupleCombinations<I, T>impl<I, T> Iterator for TupleCombinations<I, T>where
I: Iterator,
T: HasCombination<I>, type Item = T;where
Self: Clone,
T: HasCombination<Self>,
Self::Item: Clone,
fn tuple_combinations<T>(self) -> TupleCombinations<Self, T>ⓘNotable traits for TupleCombinations<I, T>impl<I, T> Iterator for TupleCombinations<I, T>where
I: Iterator,
T: HasCombination<I>, type Item = T;where
Self: Clone,
T: HasCombination<Self>,
Self::Item: Clone,
I: Iterator,
T: HasCombination<I>, type Item = T;
sourcefn combinations(self, k: usize) -> Combinations<Self>ⓘNotable traits for Combinations<I>impl<I> Iterator for Combinations<I>where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: Clone,
fn combinations(self, k: usize) -> Combinations<Self>ⓘNotable traits for Combinations<I>impl<I> Iterator for Combinations<I>where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: Clone,
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;
k-length combinations of
the elements from an iterator. Read moresourcefn combinations_with_replacement(
self,
k: usize
) -> CombinationsWithReplacement<Self>ⓘNotable traits for CombinationsWithReplacement<I>impl<I> Iterator for CombinationsWithReplacement<I>where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: Clone,
fn combinations_with_replacement(
self,
k: usize
) -> CombinationsWithReplacement<Self>ⓘNotable traits for CombinationsWithReplacement<I>impl<I> Iterator for CombinationsWithReplacement<I>where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: Clone,
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;
k-length combinations of
the elements from an iterator, with replacement. Read moresourcefn permutations(self, k: usize) -> Permutations<Self>ⓘNotable traits for Permutations<I>impl<I> Iterator for Permutations<I>where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: Clone,
fn permutations(self, k: usize) -> Permutations<Self>ⓘNotable traits for Permutations<I>impl<I> Iterator for Permutations<I>where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: Clone,
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;
sourcefn powerset(self) -> Powerset<Self>ⓘNotable traits for Powerset<I>impl<I> Iterator for Powerset<I>where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: Clone,
fn powerset(self) -> Powerset<Self>ⓘNotable traits for Powerset<I>impl<I> Iterator for Powerset<I>where
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;where
Self::Item: Clone,
I: Iterator,
<I as Iterator>::Item: Clone, type Item = Vec<<I as Iterator>::Item, Global>;
sourcefn pad_using<F>(self, min: usize, f: F) -> PadUsing<Self, F>ⓘNotable traits for PadUsing<I, F>impl<I, F> Iterator for PadUsing<I, F>where
I: Iterator,
F: FnMut(usize) -> <I as Iterator>::Item, type Item = <I as Iterator>::Item;where
F: FnMut(usize) -> Self::Item,
fn pad_using<F>(self, min: usize, f: F) -> PadUsing<Self, F>ⓘNotable traits for PadUsing<I, F>impl<I, F> Iterator for PadUsing<I, F>where
I: Iterator,
F: FnMut(usize) -> <I as Iterator>::Item, type Item = <I as Iterator>::Item;where
F: FnMut(usize) -> Self::Item,
I: Iterator,
F: FnMut(usize) -> <I as Iterator>::Item, type Item = <I as Iterator>::Item;
min by filling missing elements using a closure f. Read moresourcefn with_position(self) -> WithPosition<Self>ⓘNotable traits for WithPosition<I>impl<I> Iterator for WithPosition<I>where
I: Iterator, type Item = Position<<I as Iterator>::Item>;
fn with_position(self) -> WithPosition<Self>ⓘNotable traits for WithPosition<I>impl<I> Iterator for WithPosition<I>where
I: Iterator, type Item = Position<<I as Iterator>::Item>;
I: Iterator, type Item = Position<<I as Iterator>::Item>;
Position to
ease special-case handling of the first or last elements. Read moresourcefn positions<P>(self, predicate: P) -> Positions<Self, P>ⓘNotable traits for Positions<I, F>impl<I, F> Iterator for Positions<I, F>where
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> bool, type Item = usize;where
P: FnMut(Self::Item) -> bool,
fn positions<P>(self, predicate: P) -> Positions<Self, P>ⓘNotable traits for Positions<I, F>impl<I, F> Iterator for Positions<I, F>where
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> bool, type Item = usize;where
P: FnMut(Self::Item) -> bool,
I: Iterator,
F: FnMut(<I as Iterator>::Item) -> bool, type Item = usize;
sourcefn update<F>(self, updater: F) -> Update<Self, F>ⓘNotable traits for Update<I, F>impl<I, F> Iterator for Update<I, F>where
I: Iterator,
F: FnMut(&mut <I as Iterator>::Item), type Item = <I as Iterator>::Item;where
F: FnMut(&mut Self::Item),
fn update<F>(self, updater: F) -> Update<Self, F>ⓘNotable traits for Update<I, F>impl<I, F> Iterator for Update<I, F>where
I: Iterator,
F: FnMut(&mut <I as Iterator>::Item), type Item = <I as Iterator>::Item;where
F: FnMut(&mut Self::Item),
I: Iterator,
F: FnMut(&mut <I as Iterator>::Item), type Item = <I as Iterator>::Item;
sourcefn next_tuple<T>(&mut self) -> Option<T>where
Self: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
fn next_tuple<T>(&mut self) -> Option<T>where
Self: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
sourcefn collect_tuple<T>(self) -> Option<T>where
Self: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
fn collect_tuple<T>(self) -> Option<T>where
Self: Iterator<Item = <T as TupleCollect>::Item>,
T: HomogeneousTuple,
sourcefn find_position<P>(&mut self, pred: P) -> Option<(usize, Self::Item)>where
P: FnMut(&Self::Item) -> bool,
fn find_position<P>(&mut self, pred: P) -> Option<(usize, Self::Item)>where
P: FnMut(&Self::Item) -> bool,
sourcefn find_or_last<P>(self, predicate: P) -> Option<Self::Item>where
P: FnMut(&Self::Item) -> bool,
fn find_or_last<P>(self, predicate: P) -> Option<Self::Item>where
P: FnMut(&Self::Item) -> bool,
sourcefn find_or_first<P>(self, predicate: P) -> Option<Self::Item>where
P: FnMut(&Self::Item) -> bool,
fn find_or_first<P>(self, predicate: P) -> Option<Self::Item>where
P: FnMut(&Self::Item) -> bool,
sourcefn contains<Q>(&mut self, query: &Q) -> boolwhere
Q: PartialEq<Q>,
Self::Item: Borrow<Q>,
fn contains<Q>(&mut self, query: &Q) -> boolwhere
Q: PartialEq<Q>,
Self::Item: Borrow<Q>,
true if the given item is present in this iterator. Read moresourcefn all_equal(&mut self) -> boolwhere
Self::Item: PartialEq<Self::Item>,
fn all_equal(&mut self) -> boolwhere
Self::Item: PartialEq<Self::Item>,
sourcefn all_unique(&mut self) -> boolwhere
Self::Item: Eq,
Self::Item: Hash,
fn all_unique(&mut self) -> boolwhere
Self::Item: Eq,
Self::Item: Hash,
sourcefn dropping(self, n: usize) -> Self
fn dropping(self, n: usize) -> Self
n elements from the iterator eagerly,
and return the same iterator again. Read moresourcefn dropping_back(self, n: usize) -> Selfwhere
Self: DoubleEndedIterator,
fn dropping_back(self, n: usize) -> Selfwhere
Self: DoubleEndedIterator,
n elements from the iterator eagerly,
and return the same iterator again. Read moresourcefn foreach<F>(self, f: F)where
F: FnMut(Self::Item),
fn foreach<F>(self, f: F)where
F: FnMut(Self::Item),
Use .for_each() instead
f eagerly on each element of the iterator. Read moresourcefn concat(self) -> Self::Itemwhere
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default,
fn concat(self) -> Self::Itemwhere
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default,
sourcefn collect_vec(self) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
fn collect_vec(self) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
sourcefn try_collect<T, U, E>(self) -> Result<U, E>where
Self: Iterator<Item = Result<T, E>>,
Result<U, E>: FromIterator<Result<T, E>>,
fn try_collect<T, U, E>(self) -> Result<U, E>where
Self: Iterator<Item = Result<T, E>>,
Result<U, E>: FromIterator<Result<T, E>>,
sourcefn set_from<'a, A, J>(&mut self, from: J) -> usizewhere
A: 'a,
Self: Iterator<Item = &'a mut A>,
J: IntoIterator<Item = A>,
fn set_from<'a, A, J>(&mut self, from: J) -> usizewhere
A: 'a,
Self: Iterator<Item = &'a mut A>,
J: IntoIterator<Item = A>,
self from the from iterator,
stopping at the shortest of the two iterators. Read moresourcefn join(&mut self, sep: &str) -> Stringwhere
Self::Item: Display,
fn join(&mut self, sep: &str) -> Stringwhere
Self::Item: Display,
sep. Read moresourcefn format(self, sep: &str) -> Format<'_, Self>
fn format(self, sep: &str) -> Format<'_, Self>
sep. Read moresourcefn format_with<F>(self, sep: &str, format: F) -> FormatWith<'_, Self, F>where
F: FnMut(Self::Item, &mut dyn FnMut(&dyn Display)) -> Result<(), Error>,
fn format_with<F>(self, sep: &str, format: F) -> FormatWith<'_, Self, F>where
F: FnMut(Self::Item, &mut dyn FnMut(&dyn Display)) -> Result<(), Error>,
sep. Read moresourcefn fold_results<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>where
Self: Iterator<Item = Result<A, E>>,
F: FnMut(B, A) -> B,
fn fold_results<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>where
Self: Iterator<Item = Result<A, E>>,
F: FnMut(B, A) -> B,
Use .fold_ok() instead
.fold_ok().sourcefn fold_ok<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>where
Self: Iterator<Item = Result<A, E>>,
F: FnMut(B, A) -> B,
fn fold_ok<A, E, B, F>(&mut self, start: B, f: F) -> Result<B, E>where
Self: Iterator<Item = Result<A, E>>,
F: FnMut(B, A) -> B,
Result values from an iterator. Read moresourcefn fold_options<A, B, F>(&mut self, start: B, f: F) -> Option<B>where
Self: Iterator<Item = Option<A>>,
F: FnMut(B, A) -> B,
fn fold_options<A, B, F>(&mut self, start: B, f: F) -> Option<B>where
Self: Iterator<Item = Option<A>>,
F: FnMut(B, A) -> B,
Option values from an iterator. Read moresourcefn fold1<F>(self, f: F) -> Option<Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Self::Item,
fn fold1<F>(self, f: F) -> Option<Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Self::Item,
Use Iterator::reduce instead
sourcefn tree_fold1<F>(self, f: F) -> Option<Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Self::Item,
fn tree_fold1<F>(self, f: F) -> Option<Self::Item>where
F: FnMut(Self::Item, Self::Item) -> Self::Item,
sourcefn fold_while<B, F>(&mut self, init: B, f: F) -> FoldWhile<B>where
F: FnMut(B, Self::Item) -> FoldWhile<B>,
fn fold_while<B, F>(&mut self, init: B, f: F) -> FoldWhile<B>where
F: FnMut(B, Self::Item) -> FoldWhile<B>,
sourcefn sum1<S>(self) -> Option<S>where
S: Sum<Self::Item>,
fn sum1<S>(self) -> Option<S>where
S: Sum<Self::Item>,
sourcefn product1<P>(self) -> Option<P>where
P: Product<Self::Item>,
fn product1<P>(self) -> Option<P>where
P: Product<Self::Item>,
sourcefn sorted_unstable(self) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
Self::Item: Ord,
fn sorted_unstable(self) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
Self::Item: Ord,
A: Allocator, type Item = T;
sourcefn sorted_unstable_by<F>(self, cmp: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn sorted_unstable_by<F>(self, cmp: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
A: Allocator, type Item = T;
sourcefn sorted_unstable_by_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
K: Ord,
F: FnMut(&Self::Item) -> K,
fn sorted_unstable_by_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
K: Ord,
F: FnMut(&Self::Item) -> K,
A: Allocator, type Item = T;
sourcefn sorted(self) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
Self::Item: Ord,
fn sorted(self) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
Self::Item: Ord,
A: Allocator, type Item = T;
sourcefn sorted_by<F>(self, cmp: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn sorted_by<F>(self, cmp: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
A: Allocator, type Item = T;
sourcefn sorted_by_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
K: Ord,
F: FnMut(&Self::Item) -> K,
fn sorted_by_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
K: Ord,
F: FnMut(&Self::Item) -> K,
A: Allocator, type Item = T;
sourcefn sorted_by_cached_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
K: Ord,
F: FnMut(&Self::Item) -> K,
fn sorted_by_cached_key<K, F>(self, f: F) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
K: Ord,
F: FnMut(&Self::Item) -> K,
A: Allocator, type Item = T;
sourcefn k_smallest(self, k: usize) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
Self::Item: Ord,
fn k_smallest(self, k: usize) -> IntoIter<Self::Item, Global>ⓘNotable traits for IntoIter<T, A>impl<T, A> Iterator for IntoIter<T, A>where
A: Allocator, type Item = T;where
Self::Item: Ord,
A: Allocator, type Item = T;
sourcefn partition_map<A, B, F, L, R>(self, predicate: F) -> (A, B)where
F: FnMut(Self::Item) -> Either<L, R>,
A: Default + Extend<L>,
B: Default + Extend<R>,
fn partition_map<A, B, F, L, R>(self, predicate: F) -> (A, B)where
F: FnMut(Self::Item) -> Either<L, R>,
A: Default + Extend<L>,
B: Default + Extend<R>,
Iterator::partition, each partition may
have a distinct type. Read moresourcefn partition_result<A, B, T, E>(self) -> (A, B)where
Self: Iterator<Item = Result<T, E>>,
A: Default + Extend<T>,
B: Default + Extend<E>,
fn partition_result<A, B, T, E>(self) -> (A, B)where
Self: Iterator<Item = Result<T, E>>,
A: Default + Extend<T>,
B: Default + Extend<E>,
Results into one list of all the Ok elements
and another list of all the Err elements. Read moresourcefn into_group_map<K, V>(self) -> HashMap<K, Vec<V, Global>, RandomState>where
Self: Iterator<Item = (K, V)>,
K: Hash + Eq,
fn into_group_map<K, V>(self) -> HashMap<K, Vec<V, Global>, RandomState>where
Self: Iterator<Item = (K, V)>,
K: Hash + Eq,
HashMap of keys mapped to Vecs of values. Keys and values
are taken from (Key, Value) tuple pairs yielded by the input iterator. Read moresourcefn into_group_map_by<K, V, F>(
self,
f: F
) -> HashMap<K, Vec<V, Global>, RandomState>where
Self: Iterator<Item = V>,
K: Hash + Eq,
F: Fn(&V) -> K,
fn into_group_map_by<K, V, F>(
self,
f: F
) -> HashMap<K, Vec<V, Global>, RandomState>where
Self: Iterator<Item = V>,
K: Hash + Eq,
F: Fn(&V) -> K,
Iterator on a HashMap. Keys mapped to Vecs of values. The key is specified
in the closure. Read moresourcefn into_grouping_map<K, V>(self) -> GroupingMap<Self>where
Self: Iterator<Item = (K, V)>,
K: Hash + Eq,
fn into_grouping_map<K, V>(self) -> GroupingMap<Self>where
Self: Iterator<Item = (K, V)>,
K: Hash + Eq,
GroupingMap to be used later with one of the efficient
group-and-fold operations it allows to perform. Read moresourcefn into_grouping_map_by<K, V, F>(
self,
key_mapper: F
) -> GroupingMap<MapForGrouping<Self, F>>where
Self: Iterator<Item = V>,
K: Hash + Eq,
F: FnMut(&V) -> K,
fn into_grouping_map_by<K, V, F>(
self,
key_mapper: F
) -> GroupingMap<MapForGrouping<Self, F>>where
Self: Iterator<Item = V>,
K: Hash + Eq,
F: FnMut(&V) -> K,
GroupingMap to be used later with one of the efficient
group-and-fold operations it allows to perform. Read moresourcefn min_set(self) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
Self::Item: Ord,
fn min_set(self) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
Self::Item: Ord,
A: Allocator,
sourcefn min_set_by<F>(self, compare: F) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn min_set_by<F>(self, compare: F) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
A: Allocator,
sourcefn min_set_by_key<K, F>(self, key: F) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
K: Ord,
F: FnMut(&Self::Item) -> K,
fn min_set_by_key<K, F>(self, key: F) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
K: Ord,
F: FnMut(&Self::Item) -> K,
A: Allocator,
sourcefn max_set(self) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
Self::Item: Ord,
fn max_set(self) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
Self::Item: Ord,
A: Allocator,
sourcefn max_set_by<F>(self, compare: F) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn max_set_by<F>(self, compare: F) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
A: Allocator,
sourcefn max_set_by_key<K, F>(self, key: F) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
K: Ord,
F: FnMut(&Self::Item) -> K,
fn max_set_by_key<K, F>(self, key: F) -> Vec<Self::Item, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,where
K: Ord,
F: FnMut(&Self::Item) -> K,
A: Allocator,
sourcefn minmax(self) -> MinMaxResult<Self::Item>where
Self::Item: PartialOrd<Self::Item>,
fn minmax(self) -> MinMaxResult<Self::Item>where
Self::Item: PartialOrd<Self::Item>,
sourcefn minmax_by_key<K, F>(self, key: F) -> MinMaxResult<Self::Item>where
K: PartialOrd<K>,
F: FnMut(&Self::Item) -> K,
fn minmax_by_key<K, F>(self, key: F) -> MinMaxResult<Self::Item>where
K: PartialOrd<K>,
F: FnMut(&Self::Item) -> K,
sourcefn minmax_by<F>(self, compare: F) -> MinMaxResult<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn minmax_by<F>(self, compare: F) -> MinMaxResult<Self::Item>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
sourcefn position_max(self) -> Option<usize>where
Self::Item: Ord,
fn position_max(self) -> Option<usize>where
Self::Item: Ord,
sourcefn position_max_by_key<K, F>(self, key: F) -> Option<usize>where
K: Ord,
F: FnMut(&Self::Item) -> K,
fn position_max_by_key<K, F>(self, key: F) -> Option<usize>where
K: Ord,
F: FnMut(&Self::Item) -> K,
sourcefn position_max_by<F>(self, compare: F) -> Option<usize>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn position_max_by<F>(self, compare: F) -> Option<usize>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
sourcefn position_min(self) -> Option<usize>where
Self::Item: Ord,
fn position_min(self) -> Option<usize>where
Self::Item: Ord,
sourcefn position_min_by_key<K, F>(self, key: F) -> Option<usize>where
K: Ord,
F: FnMut(&Self::Item) -> K,
fn position_min_by_key<K, F>(self, key: F) -> Option<usize>where
K: Ord,
F: FnMut(&Self::Item) -> K,
sourcefn position_min_by<F>(self, compare: F) -> Option<usize>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn position_min_by<F>(self, compare: F) -> Option<usize>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
sourcefn position_minmax(self) -> MinMaxResult<usize>where
Self::Item: PartialOrd<Self::Item>,
fn position_minmax(self) -> MinMaxResult<usize>where
Self::Item: PartialOrd<Self::Item>,
sourcefn position_minmax_by_key<K, F>(self, key: F) -> MinMaxResult<usize>where
K: PartialOrd<K>,
F: FnMut(&Self::Item) -> K,
fn position_minmax_by_key<K, F>(self, key: F) -> MinMaxResult<usize>where
K: PartialOrd<K>,
F: FnMut(&Self::Item) -> K,
sourcefn position_minmax_by<F>(self, compare: F) -> MinMaxResult<usize>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
fn position_minmax_by<F>(self, compare: F) -> MinMaxResult<usize>where
F: FnMut(&Self::Item, &Self::Item) -> Ordering,
sourcefn exactly_one(self) -> Result<Self::Item, ExactlyOneError<Self>>
fn exactly_one(self) -> Result<Self::Item, ExactlyOneError<Self>>
sourcefn at_most_one(self) -> Result<Option<Self::Item>, ExactlyOneError<Self>>
fn at_most_one(self) -> Result<Option<Self::Item>, ExactlyOneError<Self>>
sourcefn multipeek(self) -> MultiPeek<Self>ⓘNotable traits for MultiPeek<I>impl<I> Iterator for MultiPeek<I>where
I: Iterator, type Item = <I as Iterator>::Item;
fn multipeek(self) -> MultiPeek<Self>ⓘNotable traits for MultiPeek<I>impl<I> Iterator for MultiPeek<I>where
I: Iterator, type Item = <I as Iterator>::Item;
I: Iterator, type Item = <I as Iterator>::Item;
.next()
values without advancing the base iterator. Read moresourcefn counts(self) -> HashMap<Self::Item, usize, RandomState>where
Self::Item: Eq,
Self::Item: Hash,
fn counts(self) -> HashMap<Self::Item, usize, RandomState>where
Self::Item: Eq,
Self::Item: Hash,
HashMap which
contains each item that appears in the iterator and the number
of times it appears. Read moresourcefn counts_by<K, F>(self, f: F) -> HashMap<K, usize, RandomState>where
K: Eq + Hash,
F: FnMut(Self::Item) -> K,
fn counts_by<K, F>(self, f: F) -> HashMap<K, usize, RandomState>where
K: Eq + Hash,
F: FnMut(Self::Item) -> K,
HashMap which
contains each item that appears in the iterator and the number
of times it appears,
determining identity using a keying function. Read more