internal static ConversationItemStreamingPartDeltaUpdate DeserializeItemStreamingPartDeltaUpdate()

in src/Custom/RealtimeConversation/ResponseUpdates/ConversationItemStreamingPartDeltaUpdate.Serialization.cs [46:75]


    internal static ConversationItemStreamingPartDeltaUpdate DeserializeItemStreamingPartDeltaUpdate(JsonElement element, ModelReaderWriterOptions options = null)
    {
        if (element.ValueKind != JsonValueKind.Object)
        {
            return null;
        }
        foreach (JsonProperty elementProperty in element.EnumerateObject())
        {
            if (elementProperty.NameEquals("type"u8))
            {
                string updateType = elementProperty.Value.ToString();

                ConversationUpdate baseUpdate =
                    StringComparer.OrdinalIgnoreCase.Equals(updateType, ConversationUpdateKind.ItemContentPartStarted.ToSerialString())
                        ? InternalRealtimeServerEventResponseContentPartAdded.DeserializeInternalRealtimeServerEventResponseContentPartAdded(element, options)
                    : StringComparer.OrdinalIgnoreCase.Equals(updateType, ConversationUpdateKind.ItemStreamingPartAudioDelta.ToSerialString())
                        ? InternalRealtimeServerEventResponseAudioDelta.DeserializeInternalRealtimeServerEventResponseAudioDelta(element, options)
                    : StringComparer.OrdinalIgnoreCase.Equals(updateType, ConversationUpdateKind.ItemStreamingPartAudioTranscriptionDelta.ToSerialString())
                        ? InternalRealtimeServerEventResponseAudioTranscriptDelta.DeserializeInternalRealtimeServerEventResponseAudioTranscriptDelta(element, options)
                    : StringComparer.OrdinalIgnoreCase.Equals(updateType, ConversationUpdateKind.ItemStreamingPartTextDelta.ToSerialString())
                        ? InternalRealtimeServerEventResponseTextDelta.DeserializeInternalRealtimeServerEventResponseTextDelta(element, options)
                    : StringComparer.OrdinalIgnoreCase.Equals(updateType, ConversationUpdateKind.ItemStreamingFunctionCallArgumentsDelta.ToSerialString())
                        ? InternalRealtimeServerEventResponseFunctionCallArgumentsDelta.DeserializeInternalRealtimeServerEventResponseFunctionCallArgumentsDelta(element, options)
                    : null;

                return new ConversationItemStreamingPartDeltaUpdate(baseUpdate);
            }
        }
        return null;
    }