Made

made.Made
See theMade companion object
sealed trait Made

Extended mirror for Scala types, providing annotation metadata, element-level detail, and generated member support beyond standard scala.deriving.Mirror.

A Made instance describes the structure of a type T at both the type level and runtime. Unlike the standard library Mirror, Made carries per-element metadata (annotations, default values, labels) and supports @generated members that compute derived values.

Attributes

See also
Example
import made.*
case class User(name: String, age: Int)
val mirror = Made.derived[User]
// mirror type members:
//   type Type = User
//   type Label = "User"
//   type Metadata = EmptyTuple
//   type Elems = MadeFieldElem { ... } *: MadeFieldElem { ... } *: EmptyTuple
val (nameFld, ageFld) = mirror.elems
val user = mirror.fromUnsafeArray(Array("Alice", 30))
Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Product
trait Singleton
trait Sum
trait Transparent

Members list

Type members

Types

final type ElemLabels = Map[Elems, ExtractLabel]

Tuple of element labels, extracted from Elems via type-level mapping.

Tuple of element labels, extracted from Elems via type-level mapping.

Attributes

final type ElemTypes = Map[Elems, ExtractOf]

Tuple of element types, extracted from Elems via type-level mapping.

Tuple of element types, extracted from Elems via type-level mapping.

Attributes

type Elems <: Tuple

Tuple of MadeElem subtypes representing constructor fields (for products) or subtypes (for sums).

Tuple of MadeElem subtypes representing constructor fields (for products) or subtypes (for sums).

Attributes

Tuple of GeneratedMadeElem for members annotated with @generated.

Tuple of GeneratedMadeElem for members annotated with @generated.

Attributes

type Label <: String

The simple name of T (or the override provided by @name).

The simple name of T (or the override provided by @name).

Attributes

type Metadata <: Tuple

Annotation metadata on T, represented as a Tuple of Meta @ann entries. When no MetaAnnotation annotations are present, Metadata = EmptyTuple. When annotations are present, Metadata becomes (Meta @Ann1, Meta @Ann2, ...). Query via hasAnnotation and getAnnotation.

Annotation metadata on T, represented as a Tuple of Meta @ann entries. When no MetaAnnotation annotations are present, Metadata = EmptyTuple. When annotations are present, Metadata becomes (Meta @Ann1, Meta @Ann2, ...). Query via hasAnnotation and getAnnotation.

Attributes

type Type

The mirrored type T.

The mirrored type T.

Attributes

Value members

Abstract methods

def elems: Elems

Givens

Givens

ElemLabels is all Strings; path-dependent, so it stays in scope for the ElemLabels alias.

ElemLabels is all Strings; path-dependent, so it stays in scope for the ElemLabels alias.

Attributes

Path-dependent evidence: the mirror's Elems tuple is guaranteed by the deriver to be a tuple of MadeElems. Available wherever this Made instance is in scope so plural extensions like made.elems.hasAnnotations[A] summon evidence without explicit imports.

Path-dependent evidence: the mirror's Elems tuple is guaranteed by the deriver to be a tuple of MadeElems. Available wherever this Made instance is in scope so plural extensions like made.elems.hasAnnotations[A] summon evidence without explicit imports.

Attributes

Path-dependent evidence: the mirror's GeneratedElems tuple is a tuple of GeneratedMadeElems. Enables made.generatedElems.hasAnnotations[A] analogous to made.elems.hasAnnotations[A].

Path-dependent evidence: the mirror's GeneratedElems tuple is a tuple of GeneratedMadeElems. Enables made.generatedElems.hasAnnotations[A] analogous to made.elems.hasAnnotations[A].

Attributes

Path-dependent evidence: the mirror's Metadata tuple is a tuple of Meta (or Meta @ann) entries. Mirrors the guarantee for hasAnnotation[A] / getAnnotation[A].

Path-dependent evidence: the mirror's Metadata tuple is a tuple of Meta (or Meta @ann) entries. Mirrors the guarantee for hasAnnotation[A] / getAnnotation[A].

Attributes