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

zio.test.SpecLayerMacros.scala Maven / Gradle / Ivy

package zio.test

import zio.internal.macros.LayerMacroUtils._
import scala.quoted._
import zio.internal.macros._
import zio._

object SpecLayerMacros {
  def provideImpl[R0: Type, R: Type, E: Type]
  (spec: Expr[Spec[R, E]], layer: Expr[Seq[ZLayer[_,E,_]]])(using Quotes): Expr[Spec[R0, E]] = {
    val expr = LayerMacros.constructLayer[R0, R, E](layer)
    '{$spec.provideLayer($expr)}
  }

  def provideSharedImpl[R0: Type, R: Type, E: Type]
  (spec: Expr[Spec[R,E]], layer: Expr[Seq[ZLayer[_,E,_]]])(using Quotes): Expr[Spec[R0,E]] = {
    val expr = LayerMacros.constructLayer[R0, R, E](layer)
    '{$spec.provideLayerShared($expr)}
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy