#[derive(Clone, Debug, serde::Serialize, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum ToolCallType {
Function,
}
#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
pub struct CalledFunction {
pub name: String,
pub arguments: String,
}
#[derive(Clone, Debug, serde::Serialize)]
pub struct ToolCallResponse {
pub id: String,
#[serde(rename = "type")]
pub tp: ToolCallType,
pub function: CalledFunction,
}
#[derive(Clone, Debug, serde::Serialize)]
pub struct ToolCallResponseChunk {
pub index: u32,
pub id: Option<String>,
#[serde(rename = "type")]
pub tp: Option<ToolCallType>,
pub function: Option<CalledFunctionStream>,
}
#[derive(Clone, Debug, serde::Serialize)]
pub struct CalledFunctionStream {
pub name: Option<String>,
pub arguments: Option<String>,
}