All Downloads are FREE. Search and download functionalities are using the official Maven repository.

zio.config.cats.instances.package.scala Maven / Gradle / Ivy

package zio.config.cats

import _root_.cats.kernel.Semigroup
import cats._
import zio.{Config, ConfigProvider}

package object instances {
  implicit val cfgDescInvariantSemiGroupal: Functor[Config] =
    new Applicative[Config] {
      override def ap[A, B](ff: Config[A => B])(fa: Config[A]): Config[B] =
        ff.zip(fa).map { case (f, a) => f(a) }

      override def pure[A](x: A): Config[A] =
        Config.succeed(x)
    }

  implicit val cfgDescSemiGroupK: SemigroupK[Config] =
    new SemigroupK[Config] {
      def combineK[A](x: Config[A], y: Config[A]): Config[A] =
        x.orElse(y)
    }

  implicit val configSourceMonoid: Semigroup[ConfigProvider] =
    new Semigroup[ConfigProvider] {
      override def combine(x: ConfigProvider, y: ConfigProvider): ConfigProvider =
        x.orElse(y)
    }

  implicit val configReaderFailureEq: Eq[Config.Error] =
    Eq.fromUniversalEquals
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy