adt_annotation_base library

Classes

DataAnnotation
The annotation used to derive an type according to body with the name with the typeParameters, mixing in the mixins, implementing the implementss, optionally generating the Object.== operator and Object.hashCode according to deriveEquality, an Object.runtimeType according to deriveRuntimeType, and an Object.toString according to deriveToString.
DataExpr
data DataExpr = Union Map<Symbol, TypeD> UnionVisitDeriveMode bool | Tuple List
Methods
The type that defines the methods for an specific class
Opaque
Wrap an type and make it opaque by not exposing and allowing only usages to it with specific operations defined in the library that defined this type using the member named _unwrap.
Record
An ProductType that contains every TypeD from the body named respectively as the keys in the body.
Tuple
An ProductType that contains every TypeD from the body named from e0..body.length, implementing TupleNbody.length and with an unnamed constructor initializing every value, and one fromTupleN constructor.
TypeD
TypeParam
data TypeParam = {name :: Symbol, constraint :: TypeD}
Union
An SumType that contains every type defined by taking the DataAnnotation.typeParams and applying them to every key in the body.

Enums

RecordConstructorDeriveMode
How an Record will derive its constructor. positionalArguments: An unnamed constructor that requires the arguments as positional arguments. namedArguments: An unnamed constructor that requires the arguments as required named arguments. both: An unnamed constructor that required the arguments as positional arguments and an constructor named named that required the arguments as required named arguments.
UnionVisitDeriveMode
The configuration for generating the visit function(s) for an Union. auto: Equivalent to cata for bodies that are not large and data otherwise. cata: An visit function that destructures every case of the Union. data: An visit function that has an single param containing the type of each Union case. both: An cata named visitC and an data named visit.

Typedefs

data = DataAnnotation
An shorthand for DataAnnotation
T = TypeD
Tp = TypeParam