save<T> method

  1. @override
SaveObservableBase<T> save<T>(
  1. FutureOr<T> build(
    1. SaveObserver $
    ), {
  2. void onDispose(
    1. T last
    )?,
})
override

Implementation

@override
SaveObservableBase<T> save<T>(
  FutureOr<T> Function(SaveObserver $) build, {
  void Function(T last)? onDispose,
}) {
  assert(
      _localProviders.length <= _index ||
          _localProviders[_index] is SaveProvider<T>,
      r'''
[SAVE] Do not use [$.save] conditionally.
''');
  final provider = switch (_localProviders.length) {
    int len when len > _index => _localProviders[_index],
    _ => (_localProviders
          ..add(rx.save(build, onDispose: onDispose, autoDispose: true)))
        .last,
  } as SaveProvider<T>;
  _index++;
  return watch(provider);
}