when<R> method

R when<R>({
  1. required R success(
    1. YKSuccess<T> success
    ),
  2. required R failure(
    1. YKFailure<T> failure
    ),
  3. required R cancelled(
    1. YKCancelled<T> cancelled
    ),
})

Implementation

R when<R>({
  required R Function(YKSuccess<T> success) success,
  required R Function(YKFailure<T> failure) failure,
  required R Function(YKCancelled<T> cancelled) cancelled,
}) {
  final self = this;
  if (self is YKSuccess<T>) return success(self);
  if (self is YKFailure<T>) return failure(self);
  if (self is YKCancelled<T>) return cancelled(self);
  throw StateError('Unknown YKResult variant');
}