when<TResult extends Object?> method

  1. @optionalTypeArgs
TResult when<TResult extends Object?>({
  1. required TResult cancel(
    1. @igFreezedJson Object? error,
    2. @igFreezedJson RequestOptions? options
    ),
  2. required TResult connectionTimeout(),
  3. required TResult sendTimeout(),
  4. required TResult receiveTimeout(),
  5. required TResult badCertificate(),
  6. required TResult connectionError(),
  7. required TResult badResponse(
    1. @igFreezedJson Response? response,
    2. int? statusCode
    ),
  8. required TResult businessException(
    1. String message,
    2. @igFreezedJson Object? error,
    3. @igFreezedJson StackTrace? stackTrace
    ),
})

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(@igFreezedJson  Object? error, @igFreezedJson  RequestOptions? options)  cancel,required TResult Function()  connectionTimeout,required TResult Function()  sendTimeout,required TResult Function()  receiveTimeout,required TResult Function()  badCertificate,required TResult Function()  connectionError,required TResult Function(@igFreezedJson  Response<dynamic>? response,  int? statusCode)  badResponse,required TResult Function( String message, @igFreezedJson  Object? error, @igFreezedJson  StackTrace? stackTrace)  businessException,}) {final _that = this;
switch (_that) {
case BaseApiCancelException():
return cancel(_that.error,_that.options);case BaseApiConnectionTimeoutException():
return connectionTimeout();case BaseApiSendTimeoutException():
return sendTimeout();case BaseApiReceiveTimeoutException():
return receiveTimeout();case BaseApiBadCertificateException():
return badCertificate();case BaseApiConnectionErrorException():
return connectionError();case BaseApiBadResponseException():
return badResponse(_that.response,_that.statusCode);case BaseApiBusinessException():
return businessException(_that.message,_that.error,_that.stackTrace);}
}