# Trait either::into_either::IntoEither

``````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§

source

#### 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));``````
source

#### fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘwhere F: FnOnce(&Self) -> bool,

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));``````

source§