<PackageReference Include="System.ClientModel" Version="1.7.0" />

ResponseStatusClassifier

using System.ClientModel.Internal; using System.Runtime.CompilerServices; namespace System.ClientModel.Primitives { internal class ResponseStatusClassifier : PipelineMessageClassifier { private BitVector640 _successCodes; public ResponseStatusClassifier(ReadOnlySpan<ushort> successStatusCodes) { _successCodes = default(BitVector640); ReadOnlySpan<ushort> readOnlySpan = successStatusCodes; foreach (int statusCode in readOnlySpan) { AddClassifier(statusCode, false); } } [System.Runtime.CompilerServices.NullableContext(1)] public override bool TryClassify(PipelineMessage message, out bool isError) { Argument.AssertNotNull(message, "message"); message.AssertResponse(); isError = !_successCodes[message.Response.Status]; return true; } [System.Runtime.CompilerServices.NullableContext(1)] public override bool TryClassify(PipelineMessage message, [System.Runtime.CompilerServices.Nullable(2)] Exception exception, out bool isRetriable) { Argument.AssertNotNull(message, "message"); PipelineMessageClassifier.Default.TryClassify(message, exception, out isRetriable); return true; } private void AddClassifier(int statusCode, bool isError) { Argument.AssertInRange(statusCode, 0, 639, "statusCode"); _successCodes[statusCode] = !isError; } } }