serializeGeneric<S> static method
S
serializeGeneric<S>(
- dynamic data
Generic serialization of SerializableData and basic Dart types: primitive values (null, num, bool, double, String), lists and maps whose elements are any of these.
Implementation
static S serializeGeneric<S>(dynamic data) {
if (data is SerializableData) {
return data.serialize() as S;
} else if (data is int) {
return data as S;
} else if (data is double) {
return data as S;
} else if (data is num) {
return data as S;
} else if (data is String) {
return data as S;
} else if (data is bool) {
return data as S;
} else if (data is Float32x4) {
return data as S;
} else if (data is Int32x4) {
return data as S;
} else if (data is Float64x2) {
return data as S;
} else if (data is MapEntry) {
return MapEntry(serializeGeneric(data.key), serializeGeneric(data.key))
as S;
} else if (data is Uint8List) {
return data.serialize() as S;
} else if (data is Uint16List) {
return data.serialize() as S;
} else if (data is Uint32List) {
return data.serialize() as S;
} else if (data is Int8List) {
return data.serialize() as S;
} else if (data is Int16List) {
return data.serialize() as S;
} else if (data is Int32List) {
return data.serialize() as S;
} else if (data is Float32List) {
return data.serialize() as S;
} else if (data is Float64List) {
return data.serialize() as S;
} else if (data is Float32x4List) {
return data.serialize() as S;
} else if (data is Int32x4List) {
return data.serialize() as S;
} else if (data is Float64x2List) {
return data.serialize() as S;
} else if (data is List) {
return data.serialize() as S;
} else if (data is Map) {
return data.serialize() as S;
} else if (data is Set) {
return data.serialize() as S;
} else if (data is Iterable) {
return data.serialize() as S;
} else {
throw StateError(
"Can't perform a generic serialization on type: ${data.runtimeType}");
}
}