clear method

  1. @override
void clear({
  1. bool notifyListeners = true,
})
override

Removes all elements from the set.

final characters = <String>{'A', 'B', 'C'};
characters.clear(); // {}

Implementation

@override
void clear({bool notifyListeners = true}) {
  final elements = notifyListeners ? List<E>.from(value) : null;
  value.clear();

  if (notifyListeners) {
    if (hasEvent || hasChangeEvent) {
      final events = <int, E>{};

      for (var i = 0; i < elements!.length; i++) {
        final value = elements[i];
        events.addAll(<int, E>{i: value});
        notifyChangeListeners(
            CollectionChangeEvent(CollectionEventType.removal, i, value));
      }

      if (events.isNotEmpty) {
        notifyEventListeners(
            CollectionEvent<int, E>(CollectionEventType.removal, events));
      }
    }

    this.notifyListeners(value);
  }
}