LayerBuilder
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.
- Value parameters:
- exprToNode
A method for converting an Expr into a Node for use in the graph traversal.
- foldTree
A method for folding a tree of layers into the final layer.
- layerToDebug
A method which allows LayerBuilder to filter/extract the special ZLayer.Debug layers from the provided layers.
- method
The sort of method that is being called:
provide
,provideSome
, orprovideCustom
. This is used to provide improved compilation warnings.- providedLayers0
A list of layers ASTs that have been provided by the user.
- remainder
A list of types indicating the input of the final layer. This would be the parameter of ZIO.provideSome
- target
A list of types indicating the intended output of the final layer. This is generally determined by the
R
of the effect that ZIO.provide is called on.- typeEquals
A method for comparing types: Used in the construction of the final layer
- typeToNode
A method for converting a leftover type into a Node to be used in the graph traversal.