ReducerPod<T extends Object> constructor

ReducerPod<T extends Object>({
  1. required Iterable<Option<ValueListenable<Object>>> responder(),
  2. required Option<T> reducer(
    1. List<Option<Object>> values
    ),
})

Implementation

ReducerPod({required this.responder, required this.reducer}) {
  // First-pass: subscribe to parents AND compute the initial value, then
  // initialize `value` directly. Going through `_set` here would crash on a
  // [LateInitializationError] for any [Comparable]/[num]/[bool]/[Enum] T,
  // because `_set`'s equality short-circuit reads `value` before it has been
  // assigned. Subsequent fires go through `_refresh` -> `_set` normally.
  final initial = _getValue();
  if (initial.isSome()) {
    UNSAFE:
    value = initial.unwrap();
  }
}