# [−][src]Enum itertools::EitherOrBoth

```pub enum EitherOrBoth<A, B> {
Both(A, B),
Left(A),
Right(B),
}```

Value that either holds a single A or B, or both.

## Variants

`Both(A, B)`

Both values are present.

`Left(A)`

Only the left value of type `A` is present.

`Right(B)`

Only the right value of type `B` is present.

## Methods

### `impl<A, B> EitherOrBoth<A, B>`[src]

#### `pub fn has_left(&self) -> bool`[src]

If `Left`, or `Both`, return true, otherwise, return false.

#### `pub fn has_right(&self) -> bool`[src]

If `Right`, or `Both`, return true, otherwise, return false.

#### `pub fn left(self) -> Option<A>`[src]

If `Left`, or `Both`, return `Some` with the left value, otherwise, return `None`.

#### `pub fn right(self) -> Option<B>`[src]

If `Right`, or `Both`, return `Some` with the right value, otherwise, return `None`.

#### `pub fn as_ref(&self) -> EitherOrBoth<&A, &B>`[src]

Converts from `&EitherOrBoth<A, B>` to `EitherOrBoth<&A, &B>`.

#### `pub fn as_mut(&mut self) -> EitherOrBoth<&mut A, &mut B>`[src]

Converts from `&mut EitherOrBoth<A, B>` to `EitherOrBoth<&mut A, &mut B>`.

## Trait Implementations

### `impl<A: Clone, B: Clone> Clone for EitherOrBoth<A, B>`[src]

#### `fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

## Blanket Implementations

### `impl<T> ToOwned for T where    T: Clone, `[src]

#### `type Owned = T`

The resulting type after obtaining ownership.

### `impl<T, U> TryFrom<U> for T where    U: Into<T>, `[src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

### `impl<T, U> TryInto<U> for T where    U: TryFrom<T>, `[src]

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

The type returned in the event of a conversion error.