toMap method

  1. @override
Map<String, dynamic> toMap({
  1. Object? encoder(
    1. T element
    )?,
})
override

Serializes in the format-2 entry shape. encoder converts an element to a JSON-encodable value; by default the element itself is stored (correct for JSON primitives — matching what fromMap's decoder expects back).

Implementation

@override
Map<String, dynamic> toMap({Object? Function(T element)? encoder}) {
  Object? encode(T element) => encoder != null ? encoder(element) : element;
  List<Map<String, dynamic>> entries(Map<T, Set<String>> source) => [
        for (final MapEntry(:key, :value) in source.entries) {'e': encode(key), 't': value.toList()},
      ];
  return {
    'format': 2,
    'add': entries(_addSet),
    'remove': entries(_removeSet),
  };
}