package
macros
Type Members
-
final
case class
Graph[Key, A](nodes: List[Node[Key, A]], keyEquals: (Key, Key) ⇒ Boolean) extends Product with Serializable
-
-
final
case class
LayerBuilder[Type, Expr](target: 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
-
-
final
case class
Node[+Key, +A](inputs: List[Key], outputs: List[Key], value: A) extends Product with Serializable
-
-
final
class
ZLayerMakeMacros extends LayerMacroUtils
LayerBuilder houses the core logic for compile-time layer construction. It is parameterized by
TypeandExprsuch that it can be shared across Scala 2 and 3, which have incompatible macro libraries.A list of types indicating the intended output of the final layer. This is generally determined by the
Rof the effect that ZIO.provide is called on.A list of types indicating the input of the final layer. This would be the parameter of ZIO.provideSome
A list of layers ASTs that have been provided by the user.
A method which allows LayerBuilder to filter/extract the special ZLayer.Debug layers from the provided layers.
A method for comparing types: Used in the construction of the final layer
A method for folding a tree of layers into the final layer.
The sort of method that is being called:
provide,provideSome, orprovideCustom. This is used to provide improved compilation warnings.A method for converting an Expr into a Node for use in the graph traversal.
A method for converting a leftover type into a Node to be used in the graph traversal.