final case class LayerBuilder[Type, Expr](target0: List[Type], remainder: List[Type], providedLayers0: List[Expr], layerToDebug: PartialFunction[Expr, Debug], sideEffectType: 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
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
LayerBuilder(target0: List[Type], remainder: List[Type], providedLayers0: List[Expr], layerToDebug: PartialFunction[Expr, Debug], sideEffectType: 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
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- def build: Expr
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val exprToNode: (Expr) ⇒ Node[Type, Expr]
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- val foldTree: (LayerTree[Expr]) ⇒ Expr
-
final
def
getClass(): Class[_]
- 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()
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- object MermaidGraph extends Serializable