/// <summary>
 /// Configure behaviour to inject with the monkey policy.
 /// </summary>
 /// <param name="options">The configuration object.</param>
 /// <param name="latency">The latency to inject.</param>
 public static InjectLatencyAsyncOptions Latency(this InjectLatencyAsyncOptions options, TimeSpan latency) =>
 Latency(options, (_, __) => Task.FromResult(latency));
 /// <summary>
 /// Configure behaviour to inject with the monkey policy.
 /// </summary>
 /// <param name="options">The configuration object.</param>
 /// <param name="latency">A delegate representing the latency to inject.</param>
 public static InjectLatencyAsyncOptions Latency(this InjectLatencyAsyncOptions options, Func <Context, CancellationToken, Task <TimeSpan> > latency)
 {
     options.LatencyInternal = latency;
     return(options);
 }
 internal AsyncInjectLatencyPolicy(InjectLatencyAsyncOptions options)
     : base(options.InjectionRate, options.Enabled)
 {
     _latencyProvider = options.LatencyInternal ?? throw new ArgumentNullException(nameof(options.LatencyInternal));
 }