maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult network(
    1. NetworkFailure type,
    2. String? requestId
    )?,
  2. TResult http(
    1. HttpFailure type,
    2. int? statusCode,
    3. String? message,
    4. String? requestId,
    5. Map<String, List<String>> fieldErrors,
    )?,
  3. TResult auth(
    1. AuthFailure type,
    2. String? message
    )?,
  4. TResult validation(
    1. ValidationFailure type,
    2. String? field,
    3. String? message,
    4. Map<String, List<String>> fieldErrors,
    )?,
  5. TResult storage(
    1. StorageFailure type,
    2. String? key,
    3. String? message
    )?,
  6. TResult database(
    1. DatabaseFailure type,
    2. String? message
    )?,
  7. TResult cache(
    1. CacheFailure type,
    2. String? key
    )?,
  8. TResult parse(
    1. ParseFailure type,
    2. String? field,
    3. String? message
    )?,
  9. TResult permission(
    1. PermissionFailure type,
    2. String? permission
    )?,
  10. TResult platform(
    1. PlatformFailure type,
    2. String? details
    )?,
  11. TResult file(
    1. FileFailure type,
    2. String? path,
    3. String? message
    )?,
  12. TResult location(
    1. LocationFailure type,
    2. String? message
    )?,
  13. TResult notification(
    1. NotificationFailure type,
    2. String? message
    )?,
  14. TResult payment(
    1. PaymentFailure type,
    2. String? message,
    3. String? transactionId
    )?,
  15. TResult sync(
    1. SyncFailure type,
    2. String? message
    )?,
  16. TResult unknown(
    1. Object? error,
    2. StackTrace? stackTrace,
    3. String? message
    )?,
  17. 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( NetworkFailure type,  String? requestId)?  network,TResult Function( HttpFailure type,  int? statusCode,  String? message,  String? requestId,  Map<String, List<String>> fieldErrors)?  http,TResult Function( AuthFailure type,  String? message)?  auth,TResult Function( ValidationFailure type,  String? field,  String? message,  Map<String, List<String>> fieldErrors)?  validation,TResult Function( StorageFailure type,  String? key,  String? message)?  storage,TResult Function( DatabaseFailure type,  String? message)?  database,TResult Function( CacheFailure type,  String? key)?  cache,TResult Function( ParseFailure type,  String? field,  String? message)?  parse,TResult Function( PermissionFailure type,  String? permission)?  permission,TResult Function( PlatformFailure type,  String? details)?  platform,TResult Function( FileFailure type,  String? path,  String? message)?  file,TResult Function( LocationFailure type,  String? message)?  location,TResult Function( NotificationFailure type,  String? message)?  notification,TResult Function( PaymentFailure type,  String? message,  String? transactionId)?  payment,TResult Function( SyncFailure type,  String? message)?  sync,TResult Function( Object? error,  StackTrace? stackTrace,  String? message)?  unknown,required TResult orElse(),}) {final _that = this;
switch (_that) {
case NetworkAppFailure() when network != null:
return network(_that.type,_that.requestId);case HttpAppFailure() when http != null:
return http(_that.type,_that.statusCode,_that.message,_that.requestId,_that.fieldErrors);case AuthAppFailure() when auth != null:
return auth(_that.type,_that.message);case ValidationAppFailure() when validation != null:
return validation(_that.type,_that.field,_that.message,_that.fieldErrors);case StorageAppFailure() when storage != null:
return storage(_that.type,_that.key,_that.message);case DatabaseAppFailure() when database != null:
return database(_that.type,_that.message);case CacheAppFailure() when cache != null:
return cache(_that.type,_that.key);case ParseAppFailure() when parse != null:
return parse(_that.type,_that.field,_that.message);case PermissionAppFailure() when permission != null:
return permission(_that.type,_that.permission);case PlatformAppFailure() when platform != null:
return platform(_that.type,_that.details);case FileAppFailure() when file != null:
return file(_that.type,_that.path,_that.message);case LocationAppFailure() when location != null:
return location(_that.type,_that.message);case NotificationAppFailure() when notification != null:
return notification(_that.type,_that.message);case PaymentAppFailure() when payment != null:
return payment(_that.type,_that.message,_that.transactionId);case SyncAppFailure() when sync != null:
return sync(_that.type,_that.message);case UnknownAppFailure() when unknown != null:
return unknown(_that.error,_that.stackTrace,_that.message);case _:
  return orElse();

}
}