summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenno Lossin <lossin@kernel.org>2025-05-19 14:43:02 +0200
committerMiguel Ojeda <ojeda@kernel.org>2025-07-21 23:54:19 +0200
commit28753212e0f9c61afd859acf1d678f5de7faa4b8 (patch)
tree359dbed430cdeaf660dd27de3b40a9eb8707d509
parent1523590203786bf4e1d29b7d08a7100c783f20ba (diff)
rust: types: remove `Either<L, R>`
This enum is not used. Additionally, using it would result in poor ergonomics, because in order to do any operation on a value it has to be matched first. Our version of `Either` also doesn't provide any helper methods making it even more difficult to use. The alternative of creating a custom enum for the concrete use-case also is much better for ergonomics. As one can provide functions on the type directly and users don't need to match the value manually. Signed-off-by: Benno Lossin <lossin@kernel.org> Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: https://lore.kernel.org/r/20250519124304.79237-1-lossin@kernel.org Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
-rw-r--r--rust/kernel/types.rs18
1 files changed, 0 insertions, 18 deletions
diff --git a/rust/kernel/types.rs b/rust/kernel/types.rs
index 49a0e8e9326b..82b9cfeb4739 100644
--- a/rust/kernel/types.rs
+++ b/rust/kernel/types.rs
@@ -569,24 +569,6 @@ impl<T: AlwaysRefCounted> Drop for ARef<T> {
}
}
-/// A sum type that always holds either a value of type `L` or `R`.
-///
-/// # Examples
-///
-/// ```
-/// use kernel::types::Either;
-///
-/// let left_value: Either<i32, &str> = Either::Left(7);
-/// let right_value: Either<i32, &str> = Either::Right("right value");
-/// ```
-pub enum Either<L, R> {
- /// Constructs an instance of [`Either`] containing a value of type `L`.
- Left(L),
-
- /// Constructs an instance of [`Either`] containing a value of type `R`.
- Right(R),
-}
-
/// Zero-sized type to mark types not [`Send`].
///
/// Add this type as a field to your struct if your type should not be sent to a different task.