From cd1b635b2ae90d9ac2d8b1779183a1fbd8c5fd5c Mon Sep 17 00:00:00 2001 From: vlad Date: Tue, 13 Jun 2017 16:12:20 -0700 Subject: Adding domain entities --- src/main/scala/xyz/driver/pdsuicommon/compat/EitherOps.scala | 12 ++++++++++++ src/main/scala/xyz/driver/pdsuicommon/compat/Implicits.scala | 7 +++++++ 2 files changed, 19 insertions(+) create mode 100644 src/main/scala/xyz/driver/pdsuicommon/compat/EitherOps.scala create mode 100644 src/main/scala/xyz/driver/pdsuicommon/compat/Implicits.scala (limited to 'src/main/scala/xyz/driver/pdsuicommon/compat') 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) + +} -- cgit v1.2.3