toggle method

Set<E> toggle(
  1. E element
)

Returns a new set with element added if absent, or removed if present.

Useful for selection state (e.g. toggling a chip). Does not mutate this set.

Example:

{1, 2}.toggle(2); // {1}
{1, 2}.toggle(3); // {1, 2, 3}

Implementation

Set<E> toggle(E element) {
  final Set<E> result = Set<E>.of(this);
  if (!result.add(element)) {
    result.remove(element);
  }
  return result;
}