<PackageReference Include="Polly.Core" Version="8.6.4" />

BridgeComponent<T>

using System; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace Polly.Utils.Pipeline { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] [DebuggerDisplay("{Strategy}")] internal sealed class BridgeComponent<[System.Runtime.CompilerServices.Nullable(2)] T> : BridgeComponentBase { public ResilienceStrategy<T> Strategy { get; } public BridgeComponent(ResilienceStrategy<T> strategy) : base(strategy) { Strategy = strategy; } [return: System.Runtime.CompilerServices.Nullable(new byte[] { 0, 0, 1 })] internal override ValueTask<Outcome<TResult>> ExecuteCore<[System.Runtime.CompilerServices.Nullable(2)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>([System.Runtime.CompilerServices.Nullable(new byte[] { 1, 1, 1, 0, 0, 1 })] Func<ResilienceContext, TState, ValueTask<Outcome<TResult>>> callback, ResilienceContext context, TState state) { Func<ResilienceContext, TState, ValueTask<Outcome<T>>> func = callback as Func<ResilienceContext, TState, ValueTask<Outcome<T>>>; if (func != null) { ValueTask<Outcome<T>> source = this.Strategy.ExecuteCore(func, context, state); return Unsafe.As<ValueTask<Outcome<T>>, ValueTask<Outcome<TResult>>>(ref source); } ValueTask<Outcome<T>> valueTask = this.Strategy.ExecuteCore(delegate(ResilienceContext context, (Func<ResilienceContext, TState, ValueTask<Outcome<TResult>>> callback, TState state) state) { <>c__4<TResult, TState>.<<ExecuteCore>b__4_1>d stateMachine = default(<>c__4<TResult, TState>.<<ExecuteCore>b__4_1>d); stateMachine.<>t__builder = AsyncValueTaskMethodBuilder<Outcome<T>>.Create(); stateMachine.context = context; stateMachine.state = state; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; }, context, (callback, state)); if (valueTask.IsCompletedSuccessfully) return new ValueTask<Outcome<TResult>>(BridgeComponentBase.ConvertOutcome<T, TResult>(valueTask.Result)); return <ExecuteCore>g__ConvertValueTaskAsync|4_0<TResult, TState>(valueTask, context); } } }