activate method

void activate(
  1. Iterable<ActiveUpdate> updates
)

Commits typed assignments with one notification.

Implementation

void activate(Iterable<ActiveUpdate> updates) {
  _checkDisposed();
  final pending = updates.toList();
  for (final update in pending) {
    update.target.ensureCanMutate();
    if (!update.target.accepts(update.next)) {
      throw ArgumentError('Update value does not match its target type');
    }
  }
  final events = [for (final update in pending) update.commit()];
  if (events.isNotEmpty) notifyActivities(events);
}