aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authoradamw <adam@warski.org>2017-08-31 14:40:29 +0200
committeradamw <adam@warski.org>2017-08-31 14:40:29 +0200
commit9ec0994878856743e54c4d1a38c0c80b318d7be7 (patch)
treefb55121a0bc90325369a4c1fa8e73da9c35c37a4 /core
parent71f6a1eeee412045cc08ce8894194573362cb8f0 (diff)
downloadsttp-9ec0994878856743e54c4d1a38c0c80b318d7be7.tar.gz
sttp-9ec0994878856743e54c4d1a38c0c80b318d7be7.tar.bz2
sttp-9ec0994878856743e54c4d1a38c0c80b318d7be7.zip
Change MonadError syntax to improve type inference
Diffstat (limited to 'core')
-rw-r--r--core/src/main/scala/com/softwaremill/sttp/MonadError.scala14
-rw-r--r--core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala2
-rw-r--r--core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala4
-rw-r--r--core/src/main/scala/com/softwaremill/sttp/package.scala3
4 files changed, 12 insertions, 11 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/MonadError.scala b/core/src/main/scala/com/softwaremill/sttp/MonadError.scala
index 604e964..34edb0a 100644
--- a/core/src/main/scala/com/softwaremill/sttp/MonadError.scala
+++ b/core/src/main/scala/com/softwaremill/sttp/MonadError.scala
@@ -6,11 +6,11 @@ import scala.util.{Failure, Success, Try}
trait MonadError[R[_]] {
def unit[T](t: T): R[T]
- def map[T, T2](fa: R[T], f: T => T2): R[T2]
- def flatMap[T, T2](fa: R[T], f: T => R[T2]): R[T2]
+ def map[T, T2](fa: R[T])(f: T => T2): R[T2]
+ def flatMap[T, T2](fa: R[T])(f: T => R[T2]): R[T2]
def error[T](t: Throwable): R[T]
- def flatten[T](ffa: R[R[T]]): R[T] = flatMap[R[T], T](ffa, identity)
+ def flatten[T](ffa: R[R[T]]): R[T] = flatMap[R[T], T](ffa)(identity)
def fromTry[T](t: Try[T]): R[T] = t match {
case Success(v) => unit(v)
@@ -24,8 +24,8 @@ trait MonadAsyncError[R[_]] extends MonadError[R] {
object IdMonad extends MonadError[Id] {
override def unit[T](t: T): Id[T] = t
- override def map[T, T2](fa: Id[T], f: (T) => T2): Id[T2] = f(fa)
- override def flatMap[T, T2](fa: Id[T], f: (T) => Id[T2]): Id[T2] = f(fa)
+ override def map[T, T2](fa: Id[T])(f: (T) => T2): Id[T2] = f(fa)
+ override def flatMap[T, T2](fa: Id[T])(f: (T) => Id[T2]): Id[T2] = f(fa)
override def error[T](t: Throwable): Id[T] = throw t
}
@@ -33,8 +33,8 @@ class FutureMonad(implicit ec: ExecutionContext)
extends MonadAsyncError[Future] {
override def unit[T](t: T): Future[T] = Future.successful(t)
- override def map[T, T2](fa: Future[T], f: (T) => T2): Future[T2] = fa.map(f)
- override def flatMap[T, T2](fa: Future[T], f: (T) => Future[T2]): Future[T2] =
+ override def map[T, T2](fa: Future[T])(f: (T) => T2): Future[T2] = fa.map(f)
+ override def flatMap[T, T2](fa: Future[T])(f: (T) => Future[T2]): Future[T2] =
fa.flatMap(f)
override def error[T](t: Throwable): Future[T] = Future.failed(t)
diff --git a/core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala b/core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala
index 14d3606..00f549f 100644
--- a/core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala
+++ b/core/src/main/scala/com/softwaremill/sttp/ResponseAs.scala
@@ -85,7 +85,7 @@ object ResponseAs {
responseAs match {
case mra @ MappedResponseAs(raw, g) =>
- responseMonad.map(responseMonad.fromTry(handleBasic(mra.raw)), mra.g)
+ responseMonad.map(responseMonad.fromTry(handleBasic(mra.raw)))(mra.g)
case bra: BasicResponseAs[T, S] =>
responseMonad.fromTry(handleBasic(bra))
}
diff --git a/core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala b/core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala
index fd836bd..26464ba 100644
--- a/core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala
+++ b/core/src/main/scala/com/softwaremill/sttp/SttpHandler.scala
@@ -14,13 +14,13 @@ trait SttpHandler[R[_], -S] {
def send[T](request: Request[T, S]): R[Response[T]] = {
val resp = doSend(request)
if (request.options.followRedirects) {
- responseMonad.flatMap(resp, { response: Response[T] =>
+ responseMonad.flatMap(resp) { response: Response[T] =>
if (response.isRedirect) {
followRedirect(request, response)
} else {
responseMonad.unit(response)
}
- })
+ }
} else {
resp
}
diff --git a/core/src/main/scala/com/softwaremill/sttp/package.scala b/core/src/main/scala/com/softwaremill/sttp/package.scala
index 24eb32c..63b82f0 100644
--- a/core/src/main/scala/com/softwaremill/sttp/package.scala
+++ b/core/src/main/scala/com/softwaremill/sttp/package.scala
@@ -253,7 +253,8 @@ package object sttp {
private[sttp] def codeIsSuccess(c: Int): Boolean = c >= 200 && c < 300
- private[sttp] def concatByteBuffers(bb1: ByteBuffer, bb2: ByteBuffer): ByteBuffer =
+ private[sttp] def concatByteBuffers(bb1: ByteBuffer,
+ bb2: ByteBuffer): ByteBuffer =
ByteBuffer
.allocate(bb1.array().length + bb2.array().length)
.put(bb1)