iteratorLatestValueProvider<T> function

OffsetIteratorValue<Option<T>> Function(OffsetIterator<T> iterator) iteratorLatestValueProvider<T>(
  1. ProviderRef<OffsetIteratorValue<Option<T>>> ref
)

Listens to an OffsetIterator, and updates the exposed OffsetIteratorValue whenever it changes.

Implementation

OffsetIteratorValue<Option<T>> Function(
  OffsetIterator<T> iterator,
) iteratorLatestValueProvider<T>(
  ProviderRef<OffsetIteratorValue<Option<T>>> ref,
) =>
    (iterator) {
      final cancel = iterator.listen((item) {
        ref.state =
            OffsetIteratorValue(O.Some(item), iterator.hasMore(), false);
      }, onDone: () {
        ref.state = OffsetIteratorValue(ref.state.value, false, false);
      });

      ref.onDispose(cancel);

      return OffsetIteratorValue(iterator.value, iterator.hasMore(), true);
    };