given_Transform_Decoder

Extensions

Extensions

extension (fa: Decoder[A])
def exmap[A, B](f: A => Attempt[B], g: B => Attempt[A]): Decoder[B]

Inherited extensions

extension (fa: F[A])
inline def xmapc[A, B](f: A => B)(g: B => A): Decoder[B]

Curried version of xmap.

Curried version of xmap.

Inherited from
Transform
extension (fa: F[A])
def xmap[A, B](f: A => B, g: B => A): Decoder[B]

Transforms supplied F[A] to an F[B] using the isomorphism described by two functions, A => B and B => A.

Transforms supplied F[A] to an F[B] using the isomorphism described by two functions, A => B and B => A.

Inherited from
Transform
extension (fa: F[A])
def widenOpt[A, B](f: A => B, g: B => Option[A]): Decoder[B]

Transforms supplied F[A] to an F[B] using two functions, A => B and B => Option[A].

Transforms supplied F[A] to an F[B] using two functions, A => B and B => Option[A].

Particularly useful when combined with case class apply/unapply. E.g., widenOpt(fa, Foo.apply, Foo.unapply).

Inherited from
Transform
extension (fa: F[A])
def widen[A, B](f: A => B, g: B => Attempt[A]): Decoder[B]

Transforms supplied F[A] to an F[B] using two functions, A => B and B => Attempt[A].

Transforms supplied F[A] to an F[B] using two functions, A => B and B => Attempt[A].

The supplied functions form an injection from A to B. Hence, converting a F[A] to a F[B] converts from a smaller to a larger type. Hence, the name widen.

Inherited from
Transform
extension (fa: F[A])
def narrow[A, B](f: A => Attempt[B], g: B => A): Decoder[B]

Transforms supplied F[A] to an F[B] using two functions, A => Attempt[B] and B => A.

Transforms supplied F[A] to an F[B] using two functions, A => Attempt[B] and B => A.

The supplied functions form an injection from B to A. Hence, converting a F[A] to a F[B] converts from a larger to a smaller type. Hence, the name narrow.

Inherited from
Transform