Done

made.Done
See theDone companion trait
object Done

Attributes

Companion
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Done.type

Members list

Type members

Types

type HandlerOf[Op] = ExtractInputElems[Op] match { case EmptyTuple => () => ExtractOutput[Op] case Any => NamedTuple[Map[ExtractInputElems[Op], ExtractLabel], Map[ExtractInputElems[Op], ExtractOf]] => ExtractOutput[Op] }

Maps a tuple of DoneOperations to the corresponding tuple of handler function types. Each operation with no parameters maps to () => OutputType; each operation with parameters maps to (p1: T1, p2: T2, ...) => OutputType (a named-tuple function).

Maps a tuple of DoneOperations to the corresponding tuple of handler function types. Each operation with no parameters maps to () => OutputType; each operation with parameters maps to (p1: T1, p2: T2, ...) => OutputType (a named-tuple function).

Attributes

type HandlersOf[Ops <: Tuple] = Map[Ops, HandlerOf]
type Of[T] = Done { type Type = T; }

Givens

Givens

transparent inline given derived: [T] => Of[T]

Derives a Done mirror for T at compile time.

Derives a Done mirror for T at compile time.

Each field member and declared method of T becomes a DoneOperation in the resulting Done.Operations tuple. Methods with multiple parameter lists are flattened into a single DoneOperation.InputElems tuple.

Attributes

See also

Extensions

Extensions

extension [T](done: Of[T])
def invoke(op: DoneOperation { type OuterType = T; }, target: T, args: op.Args): op.OutputType

Type-safe entry point for DoneOperation.apply — enforces at compile time that op was derived from the same mirror (its DoneOperation.OuterType equals the mirror's Done.Type).

Type-safe entry point for DoneOperation.apply — enforces at compile time that op was derived from the same mirror (its DoneOperation.OuterType equals the mirror's Done.Type).

Attributes