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