ModelWriter<T>
Provides an efficient way to write  IJsonModel<T> into a  BinaryData using multiple pooled buffers.
            
                using System.ClientModel.Primitives;
using System.Runtime.CompilerServices;
using System.Text.Encodings.Web;
using System.Text.Json;
namespace System.ClientModel.Internal
{
    [System.Runtime.CompilerServices.NullableContext(1)]
    [System.Runtime.CompilerServices.Nullable(0)]
    internal class ModelWriter<[System.Runtime.CompilerServices.Nullable(2)] T>
    {
        private readonly IJsonModel<T> _model;
        private readonly ModelReaderWriterOptions _options;
        public ModelWriter(IJsonModel<T> model, ModelReaderWriterOptions options)
        {
            _model = model;
            _options = options;
        }
        public UnsafeBufferSequence.Reader ExtractReader()
        {
            using (UnsafeBufferSequence unsafeBufferSequence = new UnsafeBufferSequence(16384))
                using (Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(unsafeBufferSequence, new JsonWriterOptions {
                    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
                })) {
                    _model.Write(utf8JsonWriter, _options);
                    utf8JsonWriter.Flush();
                    return unsafeBufferSequence.ExtractReader();
                }
        }
    }
}