use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum ContentChunk {
#[serde(rename="text")]
Text(Box<models::TextChunk>),
#[serde(rename="image_url")]
ImageUrl(Box<models::ImageUrlChunk>),
#[serde(rename="document_url")]
DocumentUrl(Box<models::DocumentUrlChunk>),
#[serde(rename="reference")]
Reference(Box<models::ReferenceChunk>),
#[serde(rename="file")]
File(Box<models::FileChunk>),
#[serde(rename="thinking")]
Thinking(Box<models::ThinkChunk>),
#[serde(rename="input_audio")]
InputAudio(Box<models::AudioChunk>),
}
impl Default for ContentChunk {
fn default() -> Self {
Self::Text(Default::default())
}
}