map<TResult extends Object?> method

  1. @optionalTypeArgs
TResult map<TResult extends Object?>({
  1. required TResult server(
    1. ServerFailure value
    ),
  2. required TResult network(
    1. NetworkFailure value
    ),
  3. required TResult unauthorized(
    1. UnauthorizedFailure value
    ),
  4. required TResult timeout(
    1. TimeoutFailure value
    ),
  5. required TResult cache(
    1. CacheFailure value
    ),
  6. required TResult unexpected(
    1. UnexpectedFailure 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( ServerFailure value)  server,required TResult Function( NetworkFailure value)  network,required TResult Function( UnauthorizedFailure value)  unauthorized,required TResult Function( TimeoutFailure value)  timeout,required TResult Function( CacheFailure value)  cache,required TResult Function( UnexpectedFailure value)  unexpected,}){
final _that = this;
switch (_that) {
case ServerFailure():
return server(_that);case NetworkFailure():
return network(_that);case UnauthorizedFailure():
return unauthorized(_that);case TimeoutFailure():
return timeout(_that);case CacheFailure():
return cache(_that);case UnexpectedFailure():
return unexpected(_that);case _:
  throw StateError('Unexpected subclass');

}
}