< Summary

Information
Class: Intentum.Runtime.Resilience.CircuitBreaker.CircuitBreakerOptions
Assembly: Intentum.Runtime
File(s): /home/runner/work/Intentum/Intentum/src/Intentum.Runtime/Resilience/CircuitBreaker/ICircuitBreaker.cs
Line coverage
100%
Covered lines: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 21
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)100%22100%

File(s)

/home/runner/work/Intentum/Intentum/src/Intentum.Runtime/Resilience/CircuitBreaker/ICircuitBreaker.cs

#LineLine coverage
 1using Intentum.Runtime.Resilience.Exceptions;
 2
 3namespace Intentum.Runtime.Resilience.CircuitBreaker;
 4
 85public sealed record CircuitBreakerOptions(
 76    int FailureThreshold = 3,
 87    TimeSpan DurationOfBreak = default,
 98    int HalfOpenMaxAttempts = 1)
 9{
 610    public TimeSpan DurationOfBreak { get; init; } =
 811        DurationOfBreak == default ? TimeSpan.FromSeconds(30) : DurationOfBreak;
 12}
 13
 14public enum CircuitState { Closed, Open, HalfOpen }
 15
 16public interface ICircuitBreaker
 17{
 18    CircuitState State { get; }
 19    Task<T> ExecuteAsync<T>(Func<Task<T>> operation);
 20    void Reset();
 21}