when<T> method

AsyncPatternMatcher<I, O> when<T>(
  1. TransformingPredicate<I, Future<T>> predicate,
  2. O function(
    1. T input
    )
)

Implementation

AsyncPatternMatcher<I, O> when<T>(
    TransformingPredicate<I, Future<T>> predicate,
    O Function(T input) function) {
  var newCases = List<_Case<I, Future<T>, Future<O>>>.from(_cases);
  newCases.add(_Case(predicate, (Future<FutureOr<T>> i) async {
    return function(await (await i));
  }));
  return AsyncPatternMatcher(newCases);
}