CellEncoderInstances

object CellEncoderInstances extends Contravariant[[T] =>> CellEncoder[T]]
trait Contravariant[[T] =>> CellEncoder[T]]
trait Invariant[[T] =>> CellEncoder[T]]
trait Serializable
class Object
trait Matchable
class Any

Value members

Concrete methods

override def contramap[A, B](fa: CellEncoder[A])(f: B => A): CellEncoder[B]
Definition Classes
Contravariant

Inherited methods

def compose[G[_]](implicit evidence$1: Contravariant[G]): Functor[[α] =>> CellEncoder[G[α]]]
Inherited from
Contravariant
def compose[G[_]](implicit evidence$1: Invariant[G]): Invariant[[α] =>> CellEncoder[G[α]]]

Compose Invariant F[_] and G[_] then produce Invariant[F[G[_]]] using their imap.

Compose Invariant F[_] and G[_] then produce Invariant[F[G[_]]] using their imap.

Example:

scala> import cats.implicits._
scala> import scala.concurrent.duration._

scala> val durSemigroupList: Semigroup[List[FiniteDuration]] =
    | Invariant[Semigroup].compose[List].imap(Semigroup[List[Long]])(Duration.fromNanos)(_.toNanos)
scala> durSemigroupList.combine(List(2.seconds, 3.seconds), List(4.seconds))
res1: List[FiniteDuration] = List(2 seconds, 3 seconds, 4 seconds)
Inherited from
Invariant
def composeContravariant[G[_]](implicit evidence$3: Contravariant[G]): Invariant[[α] =>> CellEncoder[G[α]]]

Compose Invariant F[_] and Contravariant G[_] then produce Invariant[F[G[_]]] using F's imap and G's contramap.

Compose Invariant F[_] and Contravariant G[_] then produce Invariant[F[G[_]]] using F's imap and G's contramap.

Example:

scala> import cats.implicits._
scala> import scala.concurrent.duration._

scala> type ToInt[T] = T => Int
scala> val durSemigroupToInt: Semigroup[ToInt[FiniteDuration]] =
    | Invariant[Semigroup]
    |   .composeContravariant[ToInt]
    |   .imap(Semigroup[ToInt[Long]])(Duration.fromNanos)(_.toNanos)
// semantically equal to (2.seconds.toSeconds.toInt + 1) + (2.seconds.toSeconds.toInt * 2) = 7
scala> durSemigroupToInt.combine(_.toSeconds.toInt + 1, _.toSeconds.toInt * 2)(2.seconds)
res1: Int = 7
Inherited from
Invariant
override def composeFunctor[G[_]](implicit evidence$2: Functor[G]): Contravariant[[α] =>> CellEncoder[G[α]]]
Definition Classes
Contravariant -> Invariant
Inherited from
Contravariant
override def imap[A, B](fa: CellEncoder[A])(f: A => B)(fi: B => A): CellEncoder[B]
Definition Classes
Contravariant -> Invariant
Inherited from
Contravariant
def liftContravariant[A, B](f: A => B): CellEncoder[B] => CellEncoder[A]
Inherited from
Contravariant
def narrow[A, B <: A](fa: CellEncoder[A]): CellEncoder[B]

Lifts natural subtyping contravariance of contravariant Functors. could be implemented as contramap(identity), but the Functor laws say this is equivalent

Lifts natural subtyping contravariance of contravariant Functors. could be implemented as contramap(identity), but the Functor laws say this is equivalent

Inherited from
Contravariant