File: Generated\Basic.CompilerLog.Util\Basic.CompilerLog.Util.Impl.BasicGeneratedFilesAnalyzerReference\JsonContext.GetJsonTypeInfo.g.cs
Project: ..\..\..\src\Libraries\Microsoft.Extensions.AI.Abstractions\Microsoft.Extensions.AI.Abstractions.csproj (Microsoft.Extensions.AI.Abstractions)
// <auto-generated/>
 
#nullable enable annotations
#nullable disable warnings
 
// Suppress warnings about [Obsolete] member usage in generated code.
#pragma warning disable CS0612, CS0618
 
namespace Microsoft.Extensions.AI
{
    public static partial class AIJsonUtilities
    {
        private sealed partial class JsonContext : global::System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver
        {
            /// <inheritdoc/>
            public override global::System.Text.Json.Serialization.Metadata.JsonTypeInfo? GetTypeInfo(global::System.Type type)
            {
                Options.TryGetTypeInfo(type, out global::System.Text.Json.Serialization.Metadata.JsonTypeInfo? typeInfo);
                return typeInfo;
            }
 
            global::System.Text.Json.Serialization.Metadata.JsonTypeInfo? global::System.Text.Json.Serialization.Metadata.IJsonTypeInfoResolver.GetTypeInfo(global::System.Type type, global::System.Text.Json.JsonSerializerOptions options)
            {
                if (type == typeof(bool))
                {
                    return Create_Boolean(options);
                }
                if (type == typeof(bool?))
                {
                    return Create_NullableBoolean(options);
                }
                if (type == typeof(char))
                {
                    return Create_Char(options);
                }
                if (type == typeof(decimal))
                {
                    return Create_Decimal(options);
                }
                if (type == typeof(double))
                {
                    return Create_Double(options);
                }
                if (type == typeof(float))
                {
                    return Create_Single(options);
                }
                if (type == typeof(float?))
                {
                    return Create_NullableSingle(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.AdditionalPropertiesDictionary))
                {
                    return Create_AdditionalPropertiesDictionary(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.AdditionalPropertiesDictionary<long>))
                {
                    return Create_AdditionalPropertiesDictionaryInt64(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.AIAnnotation))
                {
                    return Create_AIAnnotation(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.AIContent))
                {
                    return Create_AIContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.AIFunctionArguments))
                {
                    return Create_AIFunctionArguments(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.AnnotatedRegion))
                {
                    return Create_AnnotatedRegion(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.AutoChatToolMode))
                {
                    return Create_AutoChatToolMode(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.BinaryEmbedding))
                {
                    return Create_BinaryEmbedding(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatClientMetadata))
                {
                    return Create_ChatClientMetadata(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason))
                {
                    return Create_ChatFinishReason(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatFinishReason?))
                {
                    return Create_NullableChatFinishReason(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatMessage))
                {
                    return Create_ChatMessage(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatMessage[]))
                {
                    return Create_ChatMessageArray(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatOptions))
                {
                    return Create_ChatOptions(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatResponse))
                {
                    return Create_ChatResponse(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatResponseFormat))
                {
                    return Create_ChatResponseFormat(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatResponseFormatJson))
                {
                    return Create_ChatResponseFormatJson(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatResponseFormatText))
                {
                    return Create_ChatResponseFormatText(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatResponseUpdate))
                {
                    return Create_ChatResponseUpdate(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatRole))
                {
                    return Create_ChatRole(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatRole?))
                {
                    return Create_NullableChatRole(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ChatToolMode))
                {
                    return Create_ChatToolMode(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.CitationAnnotation))
                {
                    return Create_CitationAnnotation(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.CodeInterpreterToolCallContent))
                {
                    return Create_CodeInterpreterToolCallContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.CodeInterpreterToolResultContent))
                {
                    return Create_CodeInterpreterToolResultContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.DataContent))
                {
                    return Create_DataContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.Embedding))
                {
                    return Create_Embedding(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.Embedding<byte>))
                {
                    return Create_EmbeddingByte(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.Embedding<double>))
                {
                    return Create_EmbeddingDouble(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.Embedding<float>))
                {
                    return Create_EmbeddingSingle(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.Embedding<global::System.Half>))
                {
                    return Create_EmbeddingHalf(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.Embedding<int>))
                {
                    return Create_EmbeddingInt32(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.Embedding<sbyte>))
                {
                    return Create_EmbeddingSByte(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.EmbeddingGenerationOptions))
                {
                    return Create_EmbeddingGenerationOptions(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.EmbeddingGeneratorMetadata))
                {
                    return Create_EmbeddingGeneratorMetadata(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ErrorContent))
                {
                    return Create_ErrorContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.FunctionCallContent))
                {
                    return Create_FunctionCallContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.FunctionResultContent))
                {
                    return Create_FunctionResultContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.HostedFileClientMetadata))
                {
                    return Create_HostedFileClientMetadata(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.HostedFileClientOptions))
                {
                    return Create_HostedFileClientOptions(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.HostedFileContent))
                {
                    return Create_HostedFileContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.HostedVectorStoreContent))
                {
                    return Create_HostedVectorStoreContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ImageGenerationOptions))
                {
                    return Create_ImageGenerationOptions(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ImageGenerationResponse))
                {
                    return Create_ImageGenerationResponse(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ImageGenerationResponseFormat))
                {
                    return Create_ImageGenerationResponseFormat(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ImageGenerationResponseFormat?))
                {
                    return Create_NullableImageGenerationResponseFormat(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ImageGenerationToolCallContent))
                {
                    return Create_ImageGenerationToolCallContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ImageGenerationToolResultContent))
                {
                    return Create_ImageGenerationToolResultContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.InputRequestContent))
                {
                    return Create_InputRequestContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.InputResponseContent))
                {
                    return Create_InputResponseContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.McpServerToolCallContent))
                {
                    return Create_McpServerToolCallContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.McpServerToolResultContent))
                {
                    return Create_McpServerToolResultContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.NoneChatToolMode))
                {
                    return Create_NoneChatToolMode(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ReasoningEffort))
                {
                    return Create_ReasoningEffort(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ReasoningEffort?))
                {
                    return Create_NullableReasoningEffort(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ReasoningOptions))
                {
                    return Create_ReasoningOptions(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ReasoningOutput))
                {
                    return Create_ReasoningOutput(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ReasoningOutput?))
                {
                    return Create_NullableReasoningOutput(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.RequiredChatToolMode))
                {
                    return Create_RequiredChatToolMode(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ResponseContinuationToken))
                {
                    return Create_ResponseContinuationToken(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.SpeechToTextClientMetadata))
                {
                    return Create_SpeechToTextClientMetadata(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.SpeechToTextOptions))
                {
                    return Create_SpeechToTextOptions(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.SpeechToTextResponse))
                {
                    return Create_SpeechToTextResponse(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.SpeechToTextResponseUpdate))
                {
                    return Create_SpeechToTextResponseUpdate(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.SpeechToTextResponseUpdateKind))
                {
                    return Create_SpeechToTextResponseUpdateKind(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.TextContent))
                {
                    return Create_TextContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.TextReasoningContent))
                {
                    return Create_TextReasoningContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.TextSpanAnnotatedRegion))
                {
                    return Create_TextSpanAnnotatedRegion(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.TextToSpeechClientMetadata))
                {
                    return Create_TextToSpeechClientMetadata(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.TextToSpeechOptions))
                {
                    return Create_TextToSpeechOptions(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.TextToSpeechResponse))
                {
                    return Create_TextToSpeechResponse(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.TextToSpeechResponseUpdate))
                {
                    return Create_TextToSpeechResponseUpdate(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.TextToSpeechResponseUpdateKind))
                {
                    return Create_TextToSpeechResponseUpdateKind(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ToolApprovalRequestContent))
                {
                    return Create_ToolApprovalRequestContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ToolApprovalResponseContent))
                {
                    return Create_ToolApprovalResponseContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ToolCallContent))
                {
                    return Create_ToolCallContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.ToolResultContent))
                {
                    return Create_ToolResultContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.UriContent))
                {
                    return Create_UriContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.UsageContent))
                {
                    return Create_UsageContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.UsageDetails))
                {
                    return Create_UsageDetails(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.WebSearchToolCallContent))
                {
                    return Create_WebSearchToolCallContent(options);
                }
                if (type == typeof(global::Microsoft.Extensions.AI.WebSearchToolResultContent))
                {
                    return Create_WebSearchToolResultContent(options);
                }
                if (type == typeof(global::System.Collections.BitArray))
                {
                    return Create_BitArray(options);
                }
                if (type == typeof(global::System.Collections.Generic.Dictionary<string, object>))
                {
                    return Create_DictionaryStringObject(options);
                }
                if (type == typeof(global::System.Collections.Generic.IDictionary<string, object>))
                {
                    return Create_IDictionaryStringObject(options);
                }
                if (type == typeof(global::System.Collections.Generic.IEnumerable<global::Microsoft.Extensions.AI.AIContent>))
                {
                    return Create_IEnumerableAIContent(options);
                }
                if (type == typeof(global::System.Collections.Generic.IEnumerable<global::Microsoft.Extensions.AI.ChatMessage>))
                {
                    return Create_IEnumerableChatMessage(options);
                }
                if (type == typeof(global::System.Collections.Generic.IEnumerable<string>))
                {
                    return Create_IEnumerableString(options);
                }
                if (type == typeof(global::System.Collections.Generic.IList<global::Microsoft.Extensions.AI.AIAnnotation>))
                {
                    return Create_IListAIAnnotation(options);
                }
                if (type == typeof(global::System.Collections.Generic.IList<global::Microsoft.Extensions.AI.AIContent>))
                {
                    return Create_IListAIContent(options);
                }
                if (type == typeof(global::System.Collections.Generic.IList<global::Microsoft.Extensions.AI.AnnotatedRegion>))
                {
                    return Create_IListAnnotatedRegion(options);
                }
                if (type == typeof(global::System.Collections.Generic.IList<global::Microsoft.Extensions.AI.ChatMessage>))
                {
                    return Create_IListChatMessage(options);
                }
                if (type == typeof(global::System.Collections.Generic.IList<string>))
                {
                    return Create_IListString(options);
                }
                if (type == typeof(global::System.Collections.Generic.IReadOnlyList<global::Microsoft.Extensions.AI.ChatResponseUpdate>))
                {
                    return Create_IReadOnlyListChatResponseUpdate(options);
                }
                if (type == typeof(global::System.Collections.Generic.IReadOnlyList<global::Microsoft.Extensions.AI.SpeechToTextResponseUpdate>))
                {
                    return Create_IReadOnlyListSpeechToTextResponseUpdate(options);
                }
                if (type == typeof(global::System.Collections.Generic.IReadOnlyList<global::Microsoft.Extensions.AI.TextToSpeechResponseUpdate>))
                {
                    return Create_IReadOnlyListTextToSpeechResponseUpdate(options);
                }
                if (type == typeof(global::System.DateTime))
                {
                    return Create_DateTime(options);
                }
                if (type == typeof(global::System.DateTimeOffset))
                {
                    return Create_DateTimeOffset(options);
                }
                if (type == typeof(global::System.DateTimeOffset?))
                {
                    return Create_NullableDateTimeOffset(options);
                }
                if (type == typeof(global::System.Drawing.Size))
                {
                    return Create_Size(options);
                }
                if (type == typeof(global::System.Drawing.Size?))
                {
                    return Create_NullableSize(options);
                }
                if (type == typeof(global::System.Half))
                {
                    return Create_Half(options);
                }
                if (type == typeof(global::System.ReadOnlyMemory<byte>))
                {
                    return Create_ReadOnlyMemoryByte(options);
                }
                if (type == typeof(global::System.ReadOnlyMemory<double>))
                {
                    return Create_ReadOnlyMemoryDouble(options);
                }
                if (type == typeof(global::System.ReadOnlyMemory<float>))
                {
                    return Create_ReadOnlyMemorySingle(options);
                }
                if (type == typeof(global::System.ReadOnlyMemory<global::System.Half>))
                {
                    return Create_ReadOnlyMemoryHalf(options);
                }
                if (type == typeof(global::System.ReadOnlyMemory<int>))
                {
                    return Create_ReadOnlyMemoryInt32(options);
                }
                if (type == typeof(global::System.ReadOnlyMemory<sbyte>))
                {
                    return Create_ReadOnlyMemorySByte(options);
                }
                if (type == typeof(global::System.Text.Json.JsonDocument))
                {
                    return Create_JsonDocument(options);
                }
                if (type == typeof(global::System.Text.Json.JsonElement))
                {
                    return Create_JsonElement(options);
                }
                if (type == typeof(global::System.Text.Json.JsonElement?))
                {
                    return Create_NullableJsonElement(options);
                }
                if (type == typeof(global::System.Text.Json.Nodes.JsonArray))
                {
                    return Create_JsonArray(options);
                }
                if (type == typeof(global::System.Text.Json.Nodes.JsonNode))
                {
                    return Create_JsonNode(options);
                }
                if (type == typeof(global::System.Text.Json.Nodes.JsonObject))
                {
                    return Create_JsonObject(options);
                }
                if (type == typeof(global::System.Text.Json.Nodes.JsonValue))
                {
                    return Create_JsonValue(options);
                }
                if (type == typeof(global::System.TimeSpan))
                {
                    return Create_TimeSpan(options);
                }
                if (type == typeof(global::System.TimeSpan?))
                {
                    return Create_NullableTimeSpan(options);
                }
                if (type == typeof(global::System.Uri))
                {
                    return Create_Uri(options);
                }
                if (type == typeof(int))
                {
                    return Create_Int32(options);
                }
                if (type == typeof(int?))
                {
                    return Create_NullableInt32(options);
                }
                if (type == typeof(long))
                {
                    return Create_Int64(options);
                }
                if (type == typeof(long?))
                {
                    return Create_NullableInt64(options);
                }
                if (type == typeof(object))
                {
                    return Create_Object(options);
                }
                if (type == typeof(sbyte))
                {
                    return Create_SByte(options);
                }
                if (type == typeof(short))
                {
                    return Create_Int16(options);
                }
                if (type == typeof(string))
                {
                    return Create_String(options);
                }
                if (type == typeof(uint))
                {
                    return Create_UInt32(options);
                }
                if (type == typeof(ulong))
                {
                    return Create_UInt64(options);
                }
                if (type == typeof(ushort))
                {
                    return Create_UInt16(options);
                }
                return null;
            }
        }
    }
}