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.unsafe(Ok(Sync.unsafe(syncValue)));
        case Async(value: final asyncValue):
          return Async<Sync<T>>(() async {
            final result = await asyncValue;
            return Sync.unsafe(result);
          });
      }
    case final Err<Resolvable<T>> err:
      final failedSync = Sync.unsafe(err.transfErr<T>());
      return Sync.unsafe(Ok(failedSync));
  }
}