maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>(
  1. TResult $default(
    1. int? id,
    2. int? runId,
    3. int? runAttempt,
    4. String? name,
    5. String? runnerName,
    6. int? runnerId,
    7. int? runnerGroupId,
    8. String? status,
    9. String? conclusion,
    10. List<String> labels,
    11. GithubUserModel? runner,
    12. List<GithubActionsStepValue> steps,
    13. ModelUri? url,
    14. ModelUri? htmlUrl,
    15. ModelUri? logsUrl,
    16. ModelTimestamp? startedAt,
    17. ModelTimestamp? completedAt,
    18. bool fromServer,
    )?, {
  2. required TResult orElse(),
})

A variant of when that fallback to an orElse callback.

It is equivalent to doing:

switch (sealedClass) {
  case Subclass(:final field):
    return ...;
  case _:
    return orElse();
}

Implementation

@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>(
  TResult Function(
          int? id,
          int? runId,
          int? runAttempt,
          String? name,
          String? runnerName,
          int? runnerId,
          int? runnerGroupId,
          String? status,
          String? conclusion,
          List<String> labels,
          @jsonParam GithubUserModel? runner,
          @jsonParam List<GithubActionsStepValue> steps,
          ModelUri? url,
          ModelUri? htmlUrl,
          ModelUri? logsUrl,
          ModelTimestamp? startedAt,
          ModelTimestamp? completedAt,
          bool fromServer)?
      $default, {
  required TResult orElse(),
}) {
  final _that = this;
  switch (_that) {
    case _GithubActionsJobModel() when $default != null:
      return $default(
          _that.id,
          _that.runId,
          _that.runAttempt,
          _that.name,
          _that.runnerName,
          _that.runnerId,
          _that.runnerGroupId,
          _that.status,
          _that.conclusion,
          _that.labels,
          _that.runner,
          _that.steps,
          _that.url,
          _that.htmlUrl,
          _that.logsUrl,
          _that.startedAt,
          _that.completedAt,
          _that.fromServer);
    case _:
      return orElse();
  }
}