Static Meta-Programming
Problem
How do we do meta-programming(Reflection/Code-generation) without the usual use of reflection.
Proposal
Solution Requirements:
no annotations
structured
retains reference of generated code
Syntax:
static extention <name> on <selector> {
}
class DataClass {
const DataClass._();
}
DataClass Person(String name, {String Address}){
String NameFirstChar(){
return name.first;
}
}
static extention DataClass<T> on DataClass<T> Function {
DataClass from
Map<String, dynamic> toJson();
String toString();
}
@data class Person {String name, String Address}
static extention DataClass<T> on @data<T> {
T fromJson(Map<String, dynamic> json);
Map<String, dynamic> toJson();
String toString();
Spec _$generate(){
// access to reflection data
return generatedCode;
}
}
Last updated
Was this helpful?