bscMap<K, V> static method

CustomLayout bscMap<K, V>(
  1. Layout<K> keyLayout,
  2. Layout<V> valueLayout, {
  3. String? property,
})

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,
  );
}