/// <summary>
 /// Writes a <see cref="ReadOnlySequence{T}"/> to a <see cref="IBufferWriterAsync{T}"/>
 /// </summary>
 /// <typeparam name="T">The type of element</typeparam>
 /// <param name="writer">The writer to write to</param>
 /// <param name="value">The <see cref="ReadOnlySequence{T}"/> to read from</param>
 /// <param name="token">A cancellation token to abort the operation</param>
 /// <returns>A task representing the progress fo the write operation</returns>
 public static async ValueTask WriteAsync <T>(this IBufferWriterAsync <T> writer, ReadOnlySequence <T> value, CancellationToken token = default)
 {
     foreach (var Segment in value)
     {
         await writer.WriteAsync(Segment.Span);
     }
 }
 /// <summary>
 /// Writes a <see cref="ReadOnlyMemory{T}"/> to a <see cref="IBufferWriterAsync{T}"/>
 /// </summary>
 /// <typeparam name="T">The type of element</typeparam>
 /// <param name="writer">The writer to write to</param>
 /// <param name="value">The <see cref="ReadOnlyMemory{T}"/> to read from</param>
 /// <param name="token">A cancellation token to abort the operation</param>
 /// <returns>A task representing the progress fo the write operation</returns>
 public static ValueTask WriteAsync <T>(this IBufferWriterAsync <T> writer, ReadOnlyMemory <T> value, CancellationToken token = default) => writer.WriteAsync(value.Span, token);