pub trait IntoEither: Sized {
// Provided methods
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ { ... }
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool { ... }
}Expand description
Provides methods for converting a type Self into either a Left or Right
variant of Either<Self, Self>.
The into_either method takes a bool to determine
whether to convert to Left or Right.
The into_either_with method takes a
predicate function to determine whether to convert to Left or Right.
Provided Methods§
Sourcefn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise.
§Examples
use either::{IntoEither, Left, Right};
let x = 0;
assert_eq!(x.into_either(true), Left(x));
assert_eq!(x.into_either(false), Right(x));Sourcefn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise.
§Examples
use either::{IntoEither, Left, Right};
fn is_even(x: &u8) -> bool {
x % 2 == 0
}
let x = 0;
assert_eq!(x.into_either_with(is_even), Left(x));
assert_eq!(x.into_either_with(|x| !is_even(x)), Right(x));Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.