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](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
-
-
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
Type
andExpr
such that it can be shared across Scala 2 and 3, which have incompatible macro libraries.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.