encodeMap<K, V> method

  1. @override
void encodeMap<K, V>(
  1. Map<K, V> value, {
  2. Encodable<K>? keyUsing,
  3. Encodable<V>? valueUsing,
})
override

Encodes a map of K and V.

Optionally takes Encodable functions to encode each key and value.

Implementation

@override
void encodeMap<K, V>(Map<K, V> value, {Encodable<K>? keyUsing, Encodable<V>? valueUsing}) {
  writeByte(tokenLBrace);
  for (final key in value.keys) {
    if (key is String && keyUsing == null) {
      _writeObjectKey(key);
    } else {
      _writeObjectKey(StandardEncoder.encode<K>(key, using: keyUsing) as String);
    }

    final v = value[key] as V;
    encodeObject<V>(v, using: valueUsing);
  }
  _writeObjectEnd();
}