map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult withAccessToken(
    1. UpdatePasswordRequestWithAccessToken value
    ),
  2. required TResult withFreshAccessToken(
    1. UpdatePasswordRequestWithFreshAccessToken value
    ),
  3. required TResult withEmail(
    1. UpdatePasswordRequestWithEmail value
    ),
  4. required TResult withPhoneNumber(
    1. UpdatePasswordRequestWithPhoneNumber value
    ),
})

A switch-like method, using callbacks.

Callbacks receives the raw object, upcasted. It is equivalent to doing:

switch (sealedClass) {
  case final Subclass value:
    return ...;
  case final Subclass2 value:
    return ...;
}

Implementation

@optionalTypeArgs
TResult map<TResult extends Object?>({
  required TResult Function(UpdatePasswordRequestWithAccessToken value)
      withAccessToken,
  required TResult Function(UpdatePasswordRequestWithFreshAccessToken value)
      withFreshAccessToken,
  required TResult Function(UpdatePasswordRequestWithEmail value) withEmail,
  required TResult Function(UpdatePasswordRequestWithPhoneNumber value)
      withPhoneNumber,
}) {
  final _that = this;
  switch (_that) {
    case UpdatePasswordRequestWithAccessToken():
      return withAccessToken(_that);
    case UpdatePasswordRequestWithFreshAccessToken():
      return withFreshAccessToken(_that);
    case UpdatePasswordRequestWithEmail():
      return withEmail(_that);
    case UpdatePasswordRequestWithPhoneNumber():
      return withPhoneNumber(_that);
  }
}