maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult commit(
    1. Commit data
    )?,
  2. TResult sync(
    1. Sync data
    )?,
  3. TResult identity(
    1. Identity data
    )?,
  4. TResult account(
    1. Account data
    )?,
  5. TResult info(
    1. Info data
    )?,
  6. TResult unknown(
    1. Map<String, dynamic> data
    )?,
  7. 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( Commit data)?  commit,TResult Function( Sync data)?  sync,TResult Function( Identity data)?  identity,TResult Function( Account data)?  account,TResult Function( Info data)?  info,TResult Function( Map<String, dynamic> data)?  unknown,required TResult orElse(),}) {final _that = this;
switch (_that) {
case USyncSubscribeReposMessageCommit() when commit != null:
return commit(_that.data);case USyncSubscribeReposMessageSync() when sync != null:
return sync(_that.data);case USyncSubscribeReposMessageIdentity() when identity != null:
return identity(_that.data);case USyncSubscribeReposMessageAccount() when account != null:
return account(_that.data);case USyncSubscribeReposMessageInfo() when info != null:
return info(_that.data);case USyncSubscribeReposMessageUnknown() when unknown != null:
return unknown(_that.data);case _:
  return orElse();

}
}