artifact 1.0.16
artifact: ^1.0.16 copied to clipboard
Data Modeling for the local madman
example/lib/example.dart
import 'package:artifact/artifact.dart';
import 'package:example/gen/artifacts.gen.dart';
// default is just `@artifact`
@Artifact(compression: false, reflection: true)
class Test {
final String aString;
final int aInt;
final AEnum anEnum;
final Sub aSub;
final List<Sub>? subList;
final Set<int> aSet;
@rename("m")
final Map<int, String> aMap;
const Test({
this.aString = 'default',
required this.aInt,
required this.anEnum,
required this.aSub,
required this.subList,
required this.aSet,
required this.aMap,
});
}
@Artifact(compression: false, reflection: true)
class Sub {
final int value;
Sub({this.value = 42});
}
enum AEnum { first, second, third }
void main() {
Map<String, dynamic> data = {"value": 41};
Object object = $constructArtifact<Sub>();
print(object.runtimeType);
print($isArtifact(object));
print((object as Sub).toYaml());
}