dart_mappable_extras 0.2.3
dart_mappable_extras: ^0.2.3 copied to clipboard
Untagged Unions and Undefined Types for dart_mappable
A small library with some extras for dart_mappable.
Untagged Unions #
This library allows you to use a union type with dart_mappable.
@MappableClass(includeCustomMappers: unionMappers)
class UnionTest2 with UnionTest2Mappable {
final Union2<String, int> union;
UnionTest2({required this.union});
}
void main() {
final unionTest = UnionTest2(union: Union2.in1('test'));
final json = unionTest.toMap();
expect(json, {'union': 'test'});
final unionTest2 = UnionTest2(union: Union2.in2(1));
final json2 = unionTest2.toMap();
expect(json2, {'union': 1});
}
Optional #
This library allows you to use an optional type with dart_mappable.
@MappableClass(includeCustomMappers: [OptionalMapper()], hook: RemoveUndefinedFields(["optional", "optionalNullable"]))
class OptionalTest with OptionalTestMappable {
final Optional<String> optional;
final Optional<int?> optionalNullable;
OptionalTest({required this.optional, required this.optionalNullable});
}
void main() {
final optionalTest = OptionalTest(optional: Optional.defined('test'), optionalNullable: Optional.undefined());
final json = optionalTest.toMap();
expect(json, {'optional': 'test'});
}