trait EntityDecoder[F[_], T] extends AnyRef
Decode a Message to a DecodeResult. After decoding you have a DecodeResult
which is co-product (either) an error or a value. You can fold on the decode
result to work with either side e.g. mydecoderesult.fold(throw _,
identity)
.
- Self Type
- EntityDecoder[F, T]
- Annotations
- @implicitNotFound( ... )
- Alphabetic
- By Inheritance
- EntityDecoder
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def decode(response: Message[F]): DecodeResult[F, T]
Concrete Value Members
- def apply(response: Message[F]): DecodeResult[F, T]
- def biflatMap[T2](f: (DecodeFailure) ⇒ DecodeResult[F, T2], s: (T) ⇒ DecodeResult[F, T2])(implicit F: Monad[F]): EntityDecoder[F, T2]
- def bimap[T2](f: (DecodeFailure) ⇒ DecodeFailure, s: (T) ⇒ T2)(implicit F: Functor[F]): EntityDecoder[F, T2]
-
def
flatMapR[T2](f: (T) ⇒ DecodeResult[F, T2])(implicit F: Monad[F]): EntityDecoder[F, T2]
Flatmap into the right of the DecodeResult, i.e.
Flatmap into the right of the DecodeResult, i.e. the value part not the error.
- def handleError(f: (DecodeFailure) ⇒ T)(implicit F: Functor[F]): EntityDecoder[F, T]
- def handleErrorWith(f: (DecodeFailure) ⇒ DecodeResult[F, T])(implicit F: Monad[F]): EntityDecoder[F, T]
-
def
map[T2](f: (T) ⇒ T2)(implicit F: Functor[F]): EntityDecoder[F, T2]
Map into the value part of a DecodeResult.
-
def
orElse[T2 >: T](other: EntityDecoder[F, T2])(implicit F: Monad[F]): EntityDecoder[F, T2]
Try this decoder then other if this decoder returns a decode failure.
Try this decoder then other if this decoder returns a decode failure. Due to the process-once nature of the body, the orElse must really check headers or other information to allow orElse to compose correctly.
-
def
transform[T2](t: (Either[DecodeFailure, T]) ⇒ Either[DecodeFailure, T2])(implicit F: Functor[F]): EntityDecoder[F, T2]
Transform a decode result into another decode result.
- def transformWith[T2](f: (Either[DecodeFailure, T]) ⇒ DecodeResult[F, T2])(implicit F: Monad[F]): EntityDecoder[F, T2]
-
def
widen[T2 >: T]: EntityDecoder[F, T2]
Covariant widenening via cast.