final case class LayerBuilder[Type, Expr](target0: List[Type], remainder: List[Type], providedLayers0: List[Expr], layerToDebug: PartialFunction[Expr, Debug], sideEffectType: Type, anyType: Type, typeEquals: (Type, Type) => Boolean, foldTree: (LayerTree[Expr]) => Expr, method: ProvideMethod, exprToNode: (Expr) => Node[Type, Expr], typeToNode: (Type) => Node[Type, Expr], showExpr: (Expr) => String, showType: (Type) => String, reportWarn: (String) => Unit, reportError: (String) => Nothing) extends Product with Serializable
LayerBuilder houses the core logic for compile-time layer construction. It is
parameterized by Type
and Expr
such that it can be shared across Scala 2
and 3, which have incompatible macro libraries.
- remainder
A list of types indicating the input of the final layer. This would be the parameter of ZIO.provideSome
- providedLayers0
A list of layers ASTs that have been provided by the user.
- layerToDebug
A method which allows LayerBuilder to filter/extract the special ZLayer.Debug layers from the provided layers.
- typeEquals
A method for comparing types: Used in the construction of the final layer
- foldTree
A method for folding a tree of layers into the final layer.
- method
The sort of method that is being called:
provide
,provideSome
, orprovideCustom
. This is used to provide improved compilation warnings.- exprToNode
A method for converting an Expr into a Node for use in the graph traversal.
- typeToNode
A method for converting a leftover type into a Node to be used in the graph traversal.
- Alphabetic
- By Inheritance
- LayerBuilder
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new LayerBuilder(target0: List[Type], remainder: List[Type], providedLayers0: List[Expr], layerToDebug: PartialFunction[Expr, Debug], sideEffectType: Type, anyType: Type, typeEquals: (Type, Type) => Boolean, foldTree: (LayerTree[Expr]) => Expr, method: ProvideMethod, exprToNode: (Expr) => Node[Type, Expr], typeToNode: (Type) => Node[Type, Expr], showExpr: (Expr) => String, showType: (Type) => String, reportWarn: (String) => Unit, reportError: (String) => Nothing)
- remainder
A list of types indicating the input of the final layer. This would be the parameter of ZIO.provideSome
- providedLayers0
A list of layers ASTs that have been provided by the user.
- layerToDebug
A method which allows LayerBuilder to filter/extract the special ZLayer.Debug layers from the provided layers.
- typeEquals
A method for comparing types: Used in the construction of the final layer
- foldTree
A method for folding a tree of layers into the final layer.
- method
The sort of method that is being called:
provide
,provideSome
, orprovideCustom
. This is used to provide improved compilation warnings.- exprToNode
A method for converting an Expr into a Node for use in the graph traversal.
- typeToNode
A method for converting a leftover type into a Node to be used in the graph traversal.
Type Members
- final case class MermaidGraph(topLevel: Chunk[String], deps: Map[String, Chunk[String]]) extends Product with Serializable
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val anyType: Type
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def build: Expr
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val exprToNode: (Expr) => Node[Type, Expr]
- val foldTree: (LayerTree[Expr]) => Expr
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val layerToDebug: PartialFunction[Expr, Debug]
- val method: ProvideMethod
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val providedLayers0: List[Expr]
- val remainder: List[Type]
- val reportError: (String) => Nothing
- val reportWarn: (String) => Unit
- val showExpr: (Expr) => String
- val showType: (Type) => String
- val sideEffectType: Type
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- lazy val target: List[Type]
- val target0: List[Type]
- val typeEquals: (Type, Type) => Boolean
- val typeToNode: (Type) => Node[Type, Expr]
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- object MermaidGraph extends Serializable