MatchBuilder

oxygen.meta.MatchBuilder
See theMatchBuilder companion class
object MatchBuilder

Attributes

Companion
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Members list

Type members

Classlikes

object Case

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Case.type
sealed trait Case[+I, +O]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class CaseImpl[I, R, O]
final case class CaseImpl[I, R, O](extractor: CaseExtractor[I, R], guard: Option[Quotes => R => Expr[Boolean]], rhs: Quotes => R => Expr[O]) extends Case[I, O]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Case[I, O]
class Object
trait Matchable
class Any
Show all

Inherited and Abstract types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def merge[I, O](all: Seq[MatchBuilder[I, O]]): MatchBuilder[I, O]
def merge[I, O](all: Growable[MatchBuilder[I, O]]): MatchBuilder[I, O]
def nonExhaustive: MatchBuilder[Nothing, Nothing]
def wildcard[O](rhs: Quotes ?=> Expr[O]): MatchBuilder[Nothing, O]

Concrete fields

val empty: MatchBuilder[Any, Nothing]

Extensions

Extensions

extension [I, O](self: MatchBuilder[I, O])
def matchOn(i: Expr[I])(using Quotes, Type[I], Type[O]): Expr[O]
def matchOn[I1 : Type, I2 : Type](i1: Expr[I1], i2: Expr[I2])(using evidence$1: Type[I1], evidence$2: Type[I2], Quotes, Type[I], Type[O], (I1, I2) <:< I): Expr[O]
def matchOn[I1 : Type, I2 : Type, I3 : Type](i1: Expr[I1], i2: Expr[I2], i3: Expr[I3])(using evidence$1: Type[I1], evidence$2: Type[I2], evidence$3: Type[I3], Quotes, Type[I], Type[O], (I1, I2, I3) <:< I): Expr[O]
def matchOn[I1 : Type, I2 : Type, I3 : Type, I4 : Type](i1: Expr[I1], i2: Expr[I2], i3: Expr[I3], i4: Expr[I4])(using evidence$1: Type[I1], evidence$2: Type[I2], evidence$3: Type[I3], evidence$4: Type[I4], Quotes, Type[I], Type[O], (I1, I2, I3, I4) <:< I): Expr[O]
def matchOn[I1 : Type, I2 : Type, I3 : Type, I4 : Type, I5 : Type](i1: Expr[I1], i2: Expr[I2], i3: Expr[I3], i4: Expr[I4], i5: Expr[I5])(using evidence$1: Type[I1], evidence$2: Type[I2], evidence$3: Type[I3], evidence$4: Type[I4], evidence$5: Type[I5], Quotes, Type[I], Type[O], (I1, I2, I3, I4, I5) <:< I): Expr[O]