in src/Custom/Assistants/MessageContent.Serialization.cs [12:40]
internal static void WriteCore(MessageContent instance, Utf8JsonWriter writer, ModelReaderWriterOptions options)
=> instance.WriteCore(writer, options);
internal abstract void WriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
internal static MessageContent DeserializeMessageContent(JsonElement element, ModelReaderWriterOptions options = null)
{
options ??= ModelSerializationExtensions.WireOptions;
if (element.ValueKind == JsonValueKind.Null)
{
return null;
}
foreach (var property in element.EnumerateObject())
{
if (element.TryGetProperty("type", out JsonElement discriminator))
{
switch (discriminator.GetString())
{
case "image_file": return InternalMessageImageFileContent.DeserializeInternalMessageImageFileContent(element, options);
case "image_url": return InternalMessageImageUrlContent.DeserializeInternalMessageImageUrlContent(element, options);
case "text": return InternalResponseMessageTextContent.DeserializeInternalResponseMessageTextContent(element, options);
default: return null;
}
}
}
return null;
}