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

StreamExtensions

static class StreamExtensions
using System.Buffers; using System.IO; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace System.ClientModel.Internal { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] internal static class StreamExtensions { private const int DefaultCopyBufferSize = 81920; [AsyncStateMachine(typeof(<WriteAsync>d__1))] public static Task WriteAsync(this Stream stream, [System.Runtime.CompilerServices.Nullable(0)] ReadOnlyMemory<byte> buffer, CancellationToken cancellation = default(CancellationToken)) { <WriteAsync>d__1 stateMachine = default(<WriteAsync>d__1); stateMachine.<>t__builder = AsyncTaskMethodBuilder.Create(); stateMachine.stream = stream; stateMachine.buffer = buffer; stateMachine.cancellation = cancellation; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<WriteAsync>d__2))] public static Task WriteAsync(this Stream stream, [System.Runtime.CompilerServices.Nullable(0)] ReadOnlySequence<byte> buffer, CancellationToken cancellation = default(CancellationToken)) { <WriteAsync>d__2 stateMachine = default(<WriteAsync>d__2); stateMachine.<>t__builder = AsyncTaskMethodBuilder.Create(); stateMachine.stream = stream; stateMachine.buffer = buffer; stateMachine.cancellation = cancellation; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<CopyToAsync>d__3))] public static Task CopyToAsync(this Stream source, Stream destination, CancellationToken cancellationToken) { <CopyToAsync>d__3 stateMachine = default(<CopyToAsync>d__3); stateMachine.<>t__builder = AsyncTaskMethodBuilder.Create(); stateMachine.source = source; stateMachine.destination = destination; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } public static void CopyTo(this Stream source, Stream destination, CancellationToken cancellationToken) { byte[] array = ArrayPool<byte>.Shared.Rent(81920); try { cancellationToken.ThrowIfCancellationRequested(); int count; while ((count = source.Read(array, 0, array.Length)) != 0) { cancellationToken.ThrowIfCancellationRequested(); destination.Write(array, 0, count); } } finally { destination.Flush(); ArrayPool<byte>.Shared.Return(array, false); } } } }