zio.internal.macros

Members list

Concise view

Type members

Classlikes

final case class Graph[Key, A](nodes: List[Node[Key, A]], keyEquals: (Key, Key) => Boolean)

Attributes

Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
sealed trait GraphError[+Key, +A]

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object GraphError

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
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)

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.

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.

Attributes

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

Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
sealed abstract class LayerTree[+A] extends Product with Serializable

Attributes

Companion:
object
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
Known subtypes
class ComposeH[A]
class ComposeV[A]
object Empty.type
class Value[A]
Self type
object LayerTree

Attributes

Companion:
class
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
final case class Node[+Key, +A](inputs: List[Key], outputs: List[Key], value: A)

Attributes

Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
sealed trait ProvideMethod extends Product with Serializable

Attributes

Companion:
object
Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any
Known subtypes
object Provide.type
object ProvideCustom.type
object ProvideSome.type
object ProvideSomeShared.type

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type