when<TResult extends Object?> method
TResult
when<TResult extends Object?>({
- required TResult network(
- NetworkFailure type,
- String? requestId
- required TResult http(),
- required TResult auth(
- AuthFailure type,
- String? message
- required TResult validation(),
- required TResult storage(
- StorageFailure type,
- String? key,
- String? message
- required TResult database(
- DatabaseFailure type,
- String? message
- required TResult cache(
- CacheFailure type,
- String? key
- required TResult parse(
- ParseFailure type,
- String? field,
- String? message
- required TResult permission(
- PermissionFailure type,
- String? permission
- required TResult platform(
- PlatformFailure type,
- String? details
- required TResult file(
- FileFailure type,
- String? path,
- String? message
- required TResult location(
- LocationFailure type,
- String? message
- required TResult notification(
- NotificationFailure type,
- String? message
- required TResult payment(
- PaymentFailure type,
- String? message,
- String? transactionId
- required TResult sync(
- SyncFailure type,
- String? message
- required TResult unknown(
- Object? error,
- StackTrace? stackTrace,
- String? message
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?>({required TResult Function( NetworkFailure type, String? requestId) network,required TResult Function( HttpFailure type, int? statusCode, String? message, String? requestId, Map<String, List<String>> fieldErrors) http,required TResult Function( AuthFailure type, String? message) auth,required TResult Function( ValidationFailure type, String? field, String? message, Map<String, List<String>> fieldErrors) validation,required TResult Function( StorageFailure type, String? key, String? message) storage,required TResult Function( DatabaseFailure type, String? message) database,required TResult Function( CacheFailure type, String? key) cache,required TResult Function( ParseFailure type, String? field, String? message) parse,required TResult Function( PermissionFailure type, String? permission) permission,required TResult Function( PlatformFailure type, String? details) platform,required TResult Function( FileFailure type, String? path, String? message) file,required TResult Function( LocationFailure type, String? message) location,required TResult Function( NotificationFailure type, String? message) notification,required TResult Function( PaymentFailure type, String? message, String? transactionId) payment,required TResult Function( SyncFailure type, String? message) sync,required TResult Function( Object? error, StackTrace? stackTrace, String? message) unknown,}) {final _that = this;
switch (_that) {
case NetworkAppFailure():
return network(_that.type,_that.requestId);case HttpAppFailure():
return http(_that.type,_that.statusCode,_that.message,_that.requestId,_that.fieldErrors);case AuthAppFailure():
return auth(_that.type,_that.message);case ValidationAppFailure():
return validation(_that.type,_that.field,_that.message,_that.fieldErrors);case StorageAppFailure():
return storage(_that.type,_that.key,_that.message);case DatabaseAppFailure():
return database(_that.type,_that.message);case CacheAppFailure():
return cache(_that.type,_that.key);case ParseAppFailure():
return parse(_that.type,_that.field,_that.message);case PermissionAppFailure():
return permission(_that.type,_that.permission);case PlatformAppFailure():
return platform(_that.type,_that.details);case FileAppFailure():
return file(_that.type,_that.path,_that.message);case LocationAppFailure():
return location(_that.type,_that.message);case NotificationAppFailure():
return notification(_that.type,_that.message);case PaymentAppFailure():
return payment(_that.type,_that.message,_that.transactionId);case SyncAppFailure():
return sync(_that.type,_that.message);case UnknownAppFailure():
return unknown(_that.error,_that.stackTrace,_that.message);}
}