RetryResiliencePipelineBuilderExtensions
Extensions for adding retries to  ResiliencePipelineBuilder.
            
                using Polly.Retry;
using Polly.Utils;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
namespace Polly
{
    [System.Runtime.CompilerServices.NullableContext(1)]
    [System.Runtime.CompilerServices.Nullable(0)]
    public static class RetryResiliencePipelineBuilderExtensions
    {
        [UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "All options members preserved.")]
        [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(RetryStrategyOptions))]
        public static ResiliencePipelineBuilder AddRetry(this ResiliencePipelineBuilder builder, RetryStrategyOptions options)
        {
            Guard.NotNull(builder, "builder");
            Guard.NotNull(options, "options");
            return builder.AddStrategy((StrategyBuilderContext context) => new RetryResilienceStrategy<object>(options, context.TimeProvider, context.Telemetry), options);
        }
        [UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "All options members preserved.")]
        public static ResiliencePipelineBuilder<TResult> AddRetry<[System.Runtime.CompilerServices.Nullable(2)] [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] TResult>(this ResiliencePipelineBuilder<TResult> builder, RetryStrategyOptions<TResult> options)
        {
            Guard.NotNull(builder, "builder");
            Guard.NotNull(options, "options");
            return builder.AddStrategy((StrategyBuilderContext context) => new RetryResilienceStrategy<TResult>(options, context.TimeProvider, context.Telemetry), options);
        }
    }
}