cats/EndpointIOInstances.scala

tapir · integrations/cats/src/main/scala/sttp/tapir/integ/cats/EndpointIOInstances.scala · Apache-2.0
email

EndpointIOInstances.scala from softwaremill/tapir

// Source: https://github.com/softwaremill/tapir | License: Apache-2.0 | Copyright You must retain, in the Source form of any Derivative Works
// Provided via justclaw.it.com; keep this notice with the code.
package sttp.tapir.integ.cats

import cats.{InvariantMonoidal, InvariantSemigroupal}
import sttp.tapir.{EndpointInput, EndpointOutput, EndpointIO, emptyOutput}

trait EndpointIOInstances {
  implicit val endpointIOInvariantSemigroupal: InvariantSemigroupal[EndpointIO] =
    new InvariantSemigroupal[EndpointIO] {
      override def imap[A, B](fa: EndpointIO[A])(f: A => B)(g: B => A): EndpointIO[B] =
        fa.map(f)(g)

      override def product[A, B](fa: EndpointIO[A], fb: EndpointIO[B]): EndpointIO[(A, B)] =
        fa.and(fb)
    }

  implicit val endpointInputInvariantSemigroupal:

... (truncated -- full source via MCP)

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key