serialize method
String?
serialize(
- DartType targetType,
- String expression,
- TypeHelperContextWithConfig context
override
Returns Dart code that serializes an expression
representing a Dart
object of type targetType
.
If targetType
is not supported, returns null
.
Let's say you want to serialize a class Foo
as just its id
property
of type int
.
Treating expression
as a opaque Dart expression, the serialize
implementation could be a simple as:
String serialize(DartType targetType, String expression) =>
"$expression.id";
```.
Implementation
@override
String? serialize(
DartType targetType,
String expression,
TypeHelperContextWithConfig context,
) {
final memberContent = enumValueMapFromType(targetType);
if (memberContent == null) {
return null;
}
context.addMember(memberContent);
if (targetType.isNullableType ||
enumFieldWithNullInEncodeMap(targetType) == true) {
return '${constMapName(targetType)}[$expression]';
} else {
return '${constMapName(targetType)}[$expression]!';
}
}