use schemars::schema_for; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; #[derive(JsonSchema, Deserialize, Serialize)] #[serde(tag = "action", rename_all = "snake_case")] pub enum TasksToolEnum { /// Create task. Add { /// Task title. title: String, /// Task description. description: Option, }, /// Delete task. Delete { /// Task ID. id: String, } } fn main() { let schema = schema_for!(TasksToolEnum); println!("{}", serde_json::to_string_pretty(&schema).unwrap()); }