Computed<T> constructor

Computed<T>(
  1. T compute()
)

Implementation

factory Computed(T Function() compute) {
  final subscriptions = HashMap<ListNotifier, Disposer>.identity();
  final directDisposers = <Disposer>[];
  late Computed<T> instance;
  void handleDependencyChanged() => instance._onDependencyChanged();
  final notifyData = NotifyData(
    disposers: directDisposers,
    updater: handleDependencyChanged,
    throwException: false,
    trackedSubscriptions: subscriptions,
    activeSources: HashSet<ListNotifier>.identity(),
  );

  final initial = Notifier.instance.append(notifyData, compute);

  instance = Computed._(
    compute,
    initial,
    subscriptions,
    directDisposers,
    notifyData,
  );
  return instance;
}