use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
#[serde(rename_all = "lowercase")]
#[schemars(rename = "mcp.tool.TaskSupport")]
pub enum TaskSupport {
#[schemars(title = "Required")]
Required,
#[schemars(title = "Optional")]
Optional,
#[schemars(title = "Forbidden")]
Forbidden,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
#[schemars(rename = "mcp.tool.ToolExecution")]
pub struct ToolExecution {
#[serde(skip_serializing_if = "Option::is_none")]
#[schemars(extend("omitempty" = true))]
#[serde(rename = "taskSupport")]
pub task_support: Option<TaskSupport>,
}