RequestContentHelper
using Azure.Core;
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text.Json;
namespace Azure.Storage.Common
{
    internal static class RequestContentHelper
    {
        public static RequestContent FromEnumerable<[System.Runtime.CompilerServices.Nullable(1)] T>(IEnumerable<T> enumerable)
        {
            Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
            utf8JsonRequestContent.JsonWriter.WriteStartArray();
            foreach (T item in enumerable) {
                utf8JsonRequestContent.JsonWriter.WriteObjectValue(item);
            }
            utf8JsonRequestContent.JsonWriter.WriteEndArray();
            return utf8JsonRequestContent;
        }
        public static RequestContent FromEnumerable(IEnumerable<BinaryData> enumerable)
        {
            Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
            utf8JsonRequestContent.JsonWriter.WriteStartArray();
            foreach (BinaryData item in enumerable) {
                if (item == null)
                    utf8JsonRequestContent.JsonWriter.WriteNullValue();
                else {
                    using (JsonDocument jsonDocument = JsonDocument.Parse(BinaryData.op_Implicit(item), ModelSerializationExtensions.JsonDocumentOptions))
                        JsonSerializer.Serialize(utf8JsonRequestContent.JsonWriter, jsonDocument.RootElement, (JsonSerializerOptions)null);
                }
            }
            utf8JsonRequestContent.JsonWriter.WriteEndArray();
            return utf8JsonRequestContent;
        }
        public static RequestContent FromEnumerable<[System.Runtime.CompilerServices.Nullable(1)] T>(ReadOnlySpan<T> span)
        {
            Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
            utf8JsonRequestContent.JsonWriter.WriteStartArray();
            for (int i = 0; i < span.Length; i++) {
                utf8JsonRequestContent.JsonWriter.WriteObjectValue(span[i]);
            }
            utf8JsonRequestContent.JsonWriter.WriteEndArray();
            return utf8JsonRequestContent;
        }
        public static RequestContent FromDictionary<[System.Runtime.CompilerServices.Nullable(1)] TValue>(IDictionary<string, TValue> dictionary)
        {
            Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
            utf8JsonRequestContent.JsonWriter.WriteStartObject();
            foreach (KeyValuePair<string, TValue> item in (IEnumerable<KeyValuePair<string, TValue>>)dictionary) {
                utf8JsonRequestContent.JsonWriter.WritePropertyName(item.Key);
                utf8JsonRequestContent.JsonWriter.WriteObjectValue(item.Value);
            }
            utf8JsonRequestContent.JsonWriter.WriteEndObject();
            return utf8JsonRequestContent;
        }
        public static RequestContent FromDictionary(IDictionary<string, BinaryData> dictionary)
        {
            Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
            utf8JsonRequestContent.JsonWriter.WriteStartObject();
            foreach (KeyValuePair<string, BinaryData> item in dictionary) {
                utf8JsonRequestContent.JsonWriter.WritePropertyName(item.Key);
                if (item.Value == null)
                    utf8JsonRequestContent.JsonWriter.WriteNullValue();
                else {
                    using (JsonDocument jsonDocument = JsonDocument.Parse(BinaryData.op_Implicit(item.Value), ModelSerializationExtensions.JsonDocumentOptions))
                        JsonSerializer.Serialize(utf8JsonRequestContent.JsonWriter, jsonDocument.RootElement, (JsonSerializerOptions)null);
                }
            }
            utf8JsonRequestContent.JsonWriter.WriteEndObject();
            return utf8JsonRequestContent;
        }
        public static RequestContent FromObject(object value)
        {
            Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
            utf8JsonRequestContent.JsonWriter.WriteObjectValue<object>(value);
            return utf8JsonRequestContent;
        }
        public static RequestContent FromObject(BinaryData value)
        {
            Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
            using (JsonDocument jsonDocument = JsonDocument.Parse(BinaryData.op_Implicit(value), ModelSerializationExtensions.JsonDocumentOptions)) {
                JsonSerializer.Serialize(utf8JsonRequestContent.JsonWriter, jsonDocument.RootElement, (JsonSerializerOptions)null);
                return utf8JsonRequestContent;
            }
        }
    }
}