aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuicommon/compat
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/compat')
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/compat/EitherOps.scala12
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/compat/Implicits.scala7
2 files changed, 19 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/compat/EitherOps.scala b/src/main/scala/xyz/driver/pdsuicommon/compat/EitherOps.scala
new file mode 100644
index 0000000..96fb0c3
--- /dev/null
+++ b/src/main/scala/xyz/driver/pdsuicommon/compat/EitherOps.scala
@@ -0,0 +1,12 @@
+package xyz.driver.pdsuicommon.compat
+
+final class EitherOps[A, B](val self: Either[A, B]) extends AnyVal {
+
+ def map[B2](f: B => B2): Either[A, B2] = flatMap { x => Right(f(x)) }
+
+ def flatMap[B2](f: B => Either[A, B2]): Either[A, B2] = self match {
+ case Left(x) => Left(x)
+ case Right(x) => f(x)
+ }
+
+}
diff --git a/src/main/scala/xyz/driver/pdsuicommon/compat/Implicits.scala b/src/main/scala/xyz/driver/pdsuicommon/compat/Implicits.scala
new file mode 100644
index 0000000..147c9e8
--- /dev/null
+++ b/src/main/scala/xyz/driver/pdsuicommon/compat/Implicits.scala
@@ -0,0 +1,7 @@
+package xyz.driver.pdsuicommon.compat
+
+object Implicits {
+
+ implicit def toEitherOps[A, B](self: Either[A, B]): EitherOps[A, B] = new EitherOps(self)
+
+}