mapToggleValue<K, V> static method

void mapToggleValue<K, V>({
  1. required Map<K, List<V>> map,
  2. required K key,
  3. required V value,
  4. bool? add,
})

Toggles value in the list at key within map.

If add is null, toggles based on current presence. If add is true, adds the value. If false, removes it.

Implementation

static void mapToggleValue<K, V>({
  required Map<K, List<V>> map,
  required K key,
  required V value,
  bool? add,
}) {
  if (value == null) return;
  final bool shouldAdd = add ?? !mapContainsValue(map: map, key: key, value: value);
  if (shouldAdd) {
    mapAddValue(map: map, key: key, value: value);
  } else {
    mapRemoveValue(map: map, key: key, value: value);
  }
}