use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum ToolsInner {
#[serde(rename="function")]
Function(Box<models::FunctionTool>),
#[serde(rename="web_search")]
WebSearch(Box<models::WebSearchTool>),
#[serde(rename="web_search_premium")]
WebSearchPremium(Box<models::WebSearchPremiumTool>),
#[serde(rename="code_interpreter")]
CodeInterpreter(Box<models::CodeInterpreterTool>),
#[serde(rename="image_generation")]
ImageGeneration(Box<models::ImageGenerationTool>),
#[serde(rename="document_library")]
DocumentLibrary(Box<models::DocumentLibraryTool>),
#[serde(rename="connector")]
Connector(Box<models::CustomConnector>),
}
impl Default for ToolsInner {
fn default() -> Self {
Self::Function(Default::default())
}
}