diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/src/main/scala/com/softwaremill/sttp/MonadError.scala | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/MonadError.scala b/core/src/main/scala/com/softwaremill/sttp/MonadError.scala index 40cea4b..604e964 100644 --- a/core/src/main/scala/com/softwaremill/sttp/MonadError.scala +++ b/core/src/main/scala/com/softwaremill/sttp/MonadError.scala @@ -2,7 +2,7 @@ package com.softwaremill.sttp import scala.concurrent.{ExecutionContext, Future, Promise} import scala.language.higherKinds -import scala.util.Try +import scala.util.{Failure, Success, Try} trait MonadError[R[_]] { def unit[T](t: T): R[T] @@ -12,7 +12,10 @@ trait MonadError[R[_]] { def flatten[T](ffa: R[R[T]]): R[T] = flatMap[R[T], T](ffa, identity) - def fromTry[T](t: Try[T]): R[T] = t.fold(error, unit) + def fromTry[T](t: Try[T]): R[T] = t match { + case Success(v) => unit(v) + case Failure(e) => error(e) + } } trait MonadAsyncError[R[_]] extends MonadError[R] { |