when<TResult extends Object?> method
TResult
when<TResult extends Object?>(
- TResult $default(
- int? id,
- int? workflowId,
- int? runNumber,
- int? runAttempt,
- String? name,
- String? displayTitle,
- String? event,
- String? status,
- String? conclusion,
- String? headBranch,
- String? headSha,
- String? path,
- GithubUserModel? actor,
- GithubUserModel? triggeringActor,
- GithubRepositoryModelRef? repository,
- ModelUri? url,
- ModelUri? htmlUrl,
- ModelUri? jobsUrl,
- ModelUri? logsUrl,
- ModelUri? artifactsUrl,
- ModelUri? cancelUrl,
- ModelUri? rerunUrl,
- ModelUri? workflowUrl,
- ModelUri? checkSuiteUrl,
- ModelUri? previousAttemptUrl,
- ModelTimestamp? runStartedAt,
- ModelTimestamp createdAt,
- ModelTimestamp updatedAt,
- bool fromServer,
A switch-like method, using callbacks.
As opposed to map, this offers destructuring.
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case Subclass2(:final field2):
return ...;
}
Implementation
@optionalTypeArgs
TResult when<TResult extends Object?>(
TResult Function(
int? id,
int? workflowId,
int? runNumber,
int? runAttempt,
String? name,
String? displayTitle,
String? event,
String? status,
String? conclusion,
String? headBranch,
String? headSha,
String? path,
@jsonParam GithubUserModel? actor,
@jsonParam GithubUserModel? triggeringActor,
@refParam GithubRepositoryModelRef? repository,
ModelUri? url,
ModelUri? htmlUrl,
ModelUri? jobsUrl,
ModelUri? logsUrl,
ModelUri? artifactsUrl,
ModelUri? cancelUrl,
ModelUri? rerunUrl,
ModelUri? workflowUrl,
ModelUri? checkSuiteUrl,
ModelUri? previousAttemptUrl,
ModelTimestamp? runStartedAt,
ModelTimestamp createdAt,
ModelTimestamp updatedAt,
bool fromServer)
$default,
) {
final _that = this;
switch (_that) {
case _GithubActionsModel():
return $default(
_that.id,
_that.workflowId,
_that.runNumber,
_that.runAttempt,
_that.name,
_that.displayTitle,
_that.event,
_that.status,
_that.conclusion,
_that.headBranch,
_that.headSha,
_that.path,
_that.actor,
_that.triggeringActor,
_that.repository,
_that.url,
_that.htmlUrl,
_that.jobsUrl,
_that.logsUrl,
_that.artifactsUrl,
_that.cancelUrl,
_that.rerunUrl,
_that.workflowUrl,
_that.checkSuiteUrl,
_that.previousAttemptUrl,
_that.runStartedAt,
_that.createdAt,
_that.updatedAt,
_that.fromServer);
case _:
throw StateError('Unexpected subclass');
}
}