maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>(
  1. TResult $default(
    1. String id,
    2. String object,
    3. @JsonKey.new(name: "address_city") String? addressCity,
    4. @JsonKey.new(name: "address_country") String? addressCountry,
    5. @JsonKey.new(name: "address_line1") String? addressLine1,
    6. @JsonKey.new(name: "address_line1_check") VerificationCheck? addressLine1Check,
    7. @JsonKey.new(name: "address_line2") String? addressLine2,
    8. @JsonKey.new(name: "address_state") String? addressState,
    9. @JsonKey.new(name: "address_zip") String? addressZip,
    10. @JsonKey.new(name: "address_zip_check") VerificationCheck? addressZipCheck,
    11. CardTokenBrand? brand,
    12. String? country,
    13. String? currency,
    14. @JsonKey.new(name: "cvc_check") VerificationCheck? cvcCheck,
    15. @JsonKey.new(name: "dynamic_last4") String? dynamicLast4,
    16. @JsonKey.new(name: "exp_month") int? expMonth,
    17. @JsonKey.new(name: "exp_year") int? expYear,
    18. String? fingerprint,
    19. CardFundingType? funding,
    20. String? last4,
    21. Map<String, dynamic> metadata,
    22. String? name,
    23. @JsonKey.new(name: "tokenization_method") CardTokenizationMethod? tokenizationMethod,
    )?, {
  2. 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( String id,  String object, @JsonKey(name: "address_city")  String? addressCity, @JsonKey(name: "address_country")  String? addressCountry, @JsonKey(name: "address_line1")  String? addressLine1, @JsonKey(name: "address_line1_check")  VerificationCheck? addressLine1Check, @JsonKey(name: "address_line2")  String? addressLine2, @JsonKey(name: "address_state")  String? addressState, @JsonKey(name: "address_zip")  String? addressZip, @JsonKey(name: "address_zip_check")  VerificationCheck? addressZipCheck,  CardTokenBrand? brand,  String? country,  String? currency, @JsonKey(name: "cvc_check")  VerificationCheck? cvcCheck, @JsonKey(name: "dynamic_last4")  String? dynamicLast4, @JsonKey(name: "exp_month")  int? expMonth, @JsonKey(name: "exp_year")  int? expYear,  String? fingerprint,  CardFundingType? funding,  String? last4,  Map<String, dynamic> metadata,  String? name, @JsonKey(name: "tokenization_method")  CardTokenizationMethod? tokenizationMethod)?  $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _CardToken() when $default != null:
return $default(_that.id,_that.object,_that.addressCity,_that.addressCountry,_that.addressLine1,_that.addressLine1Check,_that.addressLine2,_that.addressState,_that.addressZip,_that.addressZipCheck,_that.brand,_that.country,_that.currency,_that.cvcCheck,_that.dynamicLast4,_that.expMonth,_that.expYear,_that.fingerprint,_that.funding,_that.last4,_that.metadata,_that.name,_that.tokenizationMethod);case _:
  return orElse();

}
}