use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(tag = "type")]
pub enum ToolChoice {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "tool")]
Tool {
name: String,
},
#[serde(rename = "any")]
Any,
#[serde(rename = "none")]
None,
}
impl ToolChoice {
pub fn auto() -> Self {
Self::Auto
}
pub fn specific(name: impl Into<String>) -> Self {
Self::Tool { name: name.into() }
}
pub fn any() -> Self {
Self::Any
}
pub fn none() -> Self {
Self::None
}
}