when<TResult extends Object?> method

  1. @optionalTypeArgs
TResult when<TResult extends Object?>(
  1. TResult $default(
    1. String? graphqlEndpoint,
    2. String? loginByPhoneEndpoint,
    3. String? uploadFileEndPoint,
    4. String? pinResetEndpoint,
    5. String? requestPinResetEndpoint,
    6. String? respondedSecurityQuestionsEndpoint,
    7. String? verifySecurityQuestionsEndpoint,
    8. String? updateUserPinEndpoint,
    9. String? verifyPhoneEndpoint,
    10. String? createUserByPhoneEndpoint,
    11. String? retryResendOtpEndpoint,
    12. String? refreshTokenEndpoint,
    13. String? refreshStreamTokenEndpoint,
    14. String? anonymousLoginEndpoint,
    15. String? userRecoveryPhoneNumbersEndpoint,
    16. String? sendRecoverAccountOtpEndpoint,
    17. String? setPrimaryPhoneNumberEndpoint,
    18. String? sendContactVerificationOTPEndpoint,
    19. String? verifyContactOTPEndpoint,
    20. String? switchFlaggedFeaturesEndpoint,
    21. String? pinResetServiceRequestEndpoint,
    22. String? optInClientEndpoint,
    23. String? listOrganisationsEndpoint,
    24. String? communitiesEndpoint,
    25. String? matrixMediaServer,
    26. String? contentEndpoint,
    27. String? passwordResetEndpoint,
    28. String? setPinEndpoint,
    29. String? termsAndConditionsEndpoint,
    30. String? privacyPolicyEndpoint,
    )
)

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( String? graphqlEndpoint,  String? loginByPhoneEndpoint,  String? uploadFileEndPoint,  String? pinResetEndpoint,  String? requestPinResetEndpoint,  String? respondedSecurityQuestionsEndpoint,  String? verifySecurityQuestionsEndpoint,  String? updateUserPinEndpoint,  String? verifyPhoneEndpoint,  String? createUserByPhoneEndpoint,  String? retryResendOtpEndpoint,  String? refreshTokenEndpoint,  String? refreshStreamTokenEndpoint,  String? anonymousLoginEndpoint,  String? userRecoveryPhoneNumbersEndpoint,  String? sendRecoverAccountOtpEndpoint,  String? setPrimaryPhoneNumberEndpoint,  String? sendContactVerificationOTPEndpoint,  String? verifyContactOTPEndpoint,  String? switchFlaggedFeaturesEndpoint,  String? pinResetServiceRequestEndpoint,  String? optInClientEndpoint,  String? listOrganisationsEndpoint,  String? communitiesEndpoint,  String? matrixMediaServer,  String? contentEndpoint,  String? passwordResetEndpoint,  String? setPinEndpoint,  String? termsAndConditionsEndpoint,  String? privacyPolicyEndpoint)  $default,) {final _that = this;
switch (_that) {
case _BaseContext():
return $default(_that.graphqlEndpoint,_that.loginByPhoneEndpoint,_that.uploadFileEndPoint,_that.pinResetEndpoint,_that.requestPinResetEndpoint,_that.respondedSecurityQuestionsEndpoint,_that.verifySecurityQuestionsEndpoint,_that.updateUserPinEndpoint,_that.verifyPhoneEndpoint,_that.createUserByPhoneEndpoint,_that.retryResendOtpEndpoint,_that.refreshTokenEndpoint,_that.refreshStreamTokenEndpoint,_that.anonymousLoginEndpoint,_that.userRecoveryPhoneNumbersEndpoint,_that.sendRecoverAccountOtpEndpoint,_that.setPrimaryPhoneNumberEndpoint,_that.sendContactVerificationOTPEndpoint,_that.verifyContactOTPEndpoint,_that.switchFlaggedFeaturesEndpoint,_that.pinResetServiceRequestEndpoint,_that.optInClientEndpoint,_that.listOrganisationsEndpoint,_that.communitiesEndpoint,_that.matrixMediaServer,_that.contentEndpoint,_that.passwordResetEndpoint,_that.setPinEndpoint,_that.termsAndConditionsEndpoint,_that.privacyPolicyEndpoint);case _:
  throw StateError('Unexpected subclass');

}
}