execute<T> method
Execute operation with circuit breaker protection
Implementation
RxResult<T> execute<T>(RxResult<T> Function() operation) {
if (_isOpen && _shouldAttemptReset()) {
_reset();
}
if (_isOpen) {
return RxResult.failure(RxException.withTimestamp(
'Circuit breaker is open',
));
}
final result = operation();
if (result.isFailure) {
_recordFailure();
} else {
_recordSuccess();
}
return result;
}