when<TResult extends Object?> method
TResult
when<TResult extends Object?>({
- required TResult cancel(
- @igFreezedJson Object? error,
- @igFreezedJson RequestOptions? options
- required TResult connectionTimeout(),
- required TResult sendTimeout(),
- required TResult receiveTimeout(),
- required TResult badCertificate(),
- required TResult connectionError(),
- required TResult badResponse(
- @igFreezedJson Response? response,
- int? statusCode
- required TResult businessException(
- String message,
- @igFreezedJson Object? error,
- @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);}
}