swap method

Resolvable<Sync<T>> swap()

Implementation

@pragma('vm:prefer-inline')
Resolvable<Sync<T>> swap() {
  switch (value) {
    case Ok(value: final resolvableValue):
      switch (resolvableValue) {
        case Sync(value: final syncValue):
          return Sync.okValue(Sync.result(syncValue));
        case Async(value: final asyncValue):
          return Async<Sync<T>>(() async {
            final result = await asyncValue;
            return Sync.result(result);
          });
      }
    case final Err<Resolvable<T>> err:
      final failedSync = Sync.err(err.transfErr<T>());
      return Sync.okValue(failedSync);
  }
}