* Return a new set with `item` toggled — removed if present, added if not.
(set: Set<T>, item: T)
| 32 | * Return a new set with `item` toggled — removed if present, added if not. |
| 33 | */ |
| 34 | toggle<T>(set: Set<T>, item: T): Set<T> { |
| 35 | const result = new Set(set); |
| 36 | if (result.has(item)) { |
| 37 | result.delete(item); |
| 38 | } else { |
| 39 | result.add(item); |
| 40 | } |
| 41 | return result; |
| 42 | }, |
| 43 | }; |