summaryrefslogtreecommitdiff
path: root/vendor/either/src/into_either.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/either/src/into_either.rs')
-rw-r--r--vendor/either/src/into_either.rs64
1 files changed, 0 insertions, 64 deletions
diff --git a/vendor/either/src/into_either.rs b/vendor/either/src/into_either.rs
deleted file mode 100644
index 73746c80..00000000
--- a/vendor/either/src/into_either.rs
+++ /dev/null
@@ -1,64 +0,0 @@
-//! The trait [`IntoEither`] provides methods for converting a type `Self`, whose
-//! size is constant and known at compile-time, into an [`Either`] variant.
-
-use super::{Either, Left, Right};
-
-/// Provides methods for converting a type `Self` into either a [`Left`] or [`Right`]
-/// variant of [`Either<Self, Self>`](Either).
-///
-/// The [`into_either`](IntoEither::into_either) method takes a [`bool`] to determine
-/// whether to convert to [`Left`] or [`Right`].
-///
-/// The [`into_either_with`](IntoEither::into_either_with) method takes a
-/// [predicate function](FnOnce) to determine whether to convert to [`Left`] or [`Right`].
-pub trait IntoEither: Sized {
- /// Converts `self` into a [`Left`] variant of [`Either<Self, Self>`](Either)
- /// if `into_left` is `true`.
- /// Converts `self` into a [`Right`] variant of [`Either<Self, Self>`](Either)
- /// 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));
- /// ```
- fn into_either(self, into_left: bool) -> Either<Self, Self> {
- if into_left {
- Left(self)
- } else {
- Right(self)
- }
- }
-
- /// Converts `self` into a [`Left`] variant of [`Either<Self, Self>`](Either)
- /// if `into_left(&self)` returns `true`.
- /// Converts `self` into a [`Right`] variant of [`Either<Self, Self>`](Either)
- /// 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));
- /// ```
- fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
- where
- F: FnOnce(&Self) -> bool,
- {
- let into_left = into_left(&self);
- self.into_either(into_left)
- }
-}
-
-impl<T> IntoEither for T {}