Packages

c

zio.internal.macros

LayerBuilder

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, or provideCustom. 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.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LayerBuilder
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. 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, or provideCustom. 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

  1. final case class MermaidGraph(topLevel: Chunk[String], deps: Map[String, Chunk[String]]) extends Product with Serializable

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val anyType: Type
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def build: Expr
  7. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. val exprToNode: (Expr) => Node[Type, Expr]
  10. val foldTree: (LayerTree[Expr]) => Expr
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. val layerToDebug: PartialFunction[Expr, Debug]
  14. val method: ProvideMethod
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. def productElementNames: Iterator[String]
    Definition Classes
    Product
  19. val providedLayers0: List[Expr]
  20. val remainder: List[Type]
  21. val reportError: (String) => Nothing
  22. val reportWarn: (String) => Unit
  23. val showExpr: (Expr) => String
  24. val showType: (Type) => String
  25. val sideEffectType: Type
  26. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  27. lazy val target: List[Type]
  28. val target0: List[Type]
  29. val typeEquals: (Type, Type) => Boolean
  30. val typeToNode: (Type) => Node[Type, Expr]
  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  34. object MermaidGraph extends Serializable

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped