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( ... )
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EntityDecoder
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def decode(response: Message[F]): DecodeResult[F, T]

Concrete Value Members

  1. def apply(response: Message[F]): DecodeResult[F, T]
  2. def biflatMap[T2](f: (DecodeFailure) ⇒ DecodeResult[F, T2], s: (T) ⇒ DecodeResult[F, T2])(implicit F: Monad[F]): EntityDecoder[F, T2]
  3. def bimap[T2](f: (DecodeFailure) ⇒ DecodeFailure, s: (T) ⇒ T2)(implicit F: Functor[F]): EntityDecoder[F, T2]
  4. 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.

  5. def handleError(f: (DecodeFailure) ⇒ T)(implicit F: Functor[F]): EntityDecoder[F, T]
  6. def handleErrorWith(f: (DecodeFailure) ⇒ DecodeResult[F, T])(implicit F: Monad[F]): EntityDecoder[F, T]
  7. def map[T2](f: (T) ⇒ T2)(implicit F: Functor[F]): EntityDecoder[F, T2]

    Map into the value part of a DecodeResult.

  8. 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.

  9. 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.

  10. def transformWith[T2](f: (Either[DecodeFailure, T]) ⇒ DecodeResult[F, T2])(implicit F: Monad[F]): EntityDecoder[F, T2]
  11. def widen[T2 >: T]: EntityDecoder[F, T2]

    Covariant widenening via cast.