CellEncoderInstances

object CellEncoderInstances extends Contravariant[CellEncoder]
trait Contravariant[CellEncoder]
trait Invariant[CellEncoder]
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[_] : Contravariant]: Functor[[α] =>> CellEncoder[G[α]]]
Inherited from
Contravariant
def compose[G[_] : Invariant]: 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[_] : Contravariant]: 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[_] : Functor]: 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