serializeValue function
dynamic
serializeValue(
- dynamic value
Basic serialization function. Handles:
- Primitive types: int, double, String, bool
- Nulls
- Lists (recursively serializes elements)
- Maps (recursively serializes keys and values)
- CrystallisMixin objects (calls their
serializemethod) - Other types result in an ArgumentError
Implementation
dynamic serializeValue(dynamic value) => switch (value) {
null => null,
int() || double() || String() || bool() => value,
List() => value.map(serializeValue).toList(),
Map() => value.map((k, v) => MapEntry(k.toString(), serializeValue(v))),
CrystallisMixin() => value.serialize(),
_ => throw ArgumentError.value(
value,
'value',
'Cannot serialize value of type ${value.runtimeType}',
),
};