when<TResult extends Object?> method
TResult
when<TResult extends Object?>({
- required TResult permissionNotGranted(),
- required TResult bluetoothNotSupported(),
- required TResult scanningError(
- String? message
- required TResult authenticationError(
- String? message
- required TResult stateError(
- String? message
- required TResult measurmentError(
- String? message
- required TResult connectionError(
- String? message
- required TResult startMeasurementError(
- String? message
- required TResult stopMeasurementError(
- String? message
- required TResult fetchMeasurementError(
- String? message
- required TResult stopFetchMeasurementError(
- String? message
- required TResult identifyBlinkError(
- String? message
- required TResult dfuBootloaderError(
- String? message
- required TResult commandError(
- 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() permissionNotGranted,required TResult Function() bluetoothNotSupported,required TResult Function( String? message) scanningError,required TResult Function( String? message) authenticationError,required TResult Function( String? message) stateError,required TResult Function( String? message) measurmentError,required TResult Function( String? message) connectionError,required TResult Function( String? message) startMeasurementError,required TResult Function( String? message) stopMeasurementError,required TResult Function( String? message) fetchMeasurementError,required TResult Function( String? message) stopFetchMeasurementError,required TResult Function( String? message) identifyBlinkError,required TResult Function( String? message) dfuBootloaderError,required TResult Function( String? message) commandError,}) {final _that = this;
switch (_that) {
case _permissionNotGranted():
return permissionNotGranted();case _bluetoothNotSupported():
return bluetoothNotSupported();case _scanningError():
return scanningError(_that.message);case _authenticationError():
return authenticationError(_that.message);case _stateError():
return stateError(_that.message);case _measurmentError():
return measurmentError(_that.message);case _connectionError():
return connectionError(_that.message);case _startMeasurementError():
return startMeasurementError(_that.message);case _stopMeasurementError():
return stopMeasurementError(_that.message);case _fetchMeasurementError():
return fetchMeasurementError(_that.message);case _stopFetchMeasurementError():
return stopFetchMeasurementError(_that.message);case _identifyBlinkError():
return identifyBlinkError(_that.message);case _dfuBootloaderError():
return dfuBootloaderError(_that.message);case _commandError():
return commandError(_that.message);case _:
throw StateError('Unexpected subclass');
}
}