bscMap<K, V> static method
Implementation
static CustomLayout bscMap<K, V>(
Layout<K> keyLayout,
Layout<V> valueLayout, {
String? property,
}) {
final layout = struct([
seq(
MapEntryLayout(
keyLayout: keyLayout,
valueLayout: valueLayout,
property: "",
),
bcsOffset(),
property: 'values',
),
]);
return CustomLayout<Map<String, dynamic>, Map<K, V>>(
layout: layout,
decoder: (data) {
final List<MapEntry<K, V>> values =
(data['values'] as List)
.cast<MapEntry>()
.map(
(e) => MapEntry<K, V>(
JsonParser.valueAs<K>(e.key),
JsonParser.valueAs<V>(e.value),
),
)
.toList();
return Map.fromEntries(values);
},
encoder: (values) => {'values': values.entries.toList()},
property: property,
);
}