maybeWhen<TResult extends Object?> method
TResult
maybeWhen<TResult extends Object?>({
- TResult withAccessToken()?,
- TResult withFreshAccessToken()?,
- TResult withEmail()?,
- TResult withPhoneNumber()?,
- 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(
AuthToken authToken, String oldPassword, String newPassword)?
withAccessToken,
TResult Function(AuthToken freshAuthToken, String newPassword)?
withFreshAccessToken,
TResult Function(String email, String verificationCode, String newPassword)?
withEmail,
TResult Function(
String phoneNumber, String verificationCode, String newPassword)?
withPhoneNumber,
required TResult orElse(),
}) {
final _that = this;
switch (_that) {
case UpdatePasswordRequestWithAccessToken() when withAccessToken != null:
return withAccessToken(
_that.authToken, _that.oldPassword, _that.newPassword);
case UpdatePasswordRequestWithFreshAccessToken()
when withFreshAccessToken != null:
return withFreshAccessToken(_that.freshAuthToken, _that.newPassword);
case UpdatePasswordRequestWithEmail() when withEmail != null:
return withEmail(
_that.email, _that.verificationCode, _that.newPassword);
case UpdatePasswordRequestWithPhoneNumber() when withPhoneNumber != null:
return withPhoneNumber(
_that.phoneNumber, _that.verificationCode, _that.newPassword);
case _:
return orElse();
}
}