| use schemars::{schema_for, JsonSchema}; |
| use serde::{Deserialize, Serialize}; |
| |
| #[derive(Deserialize, Serialize, JsonSchema)] |
| #[serde(rename_all = "camelCase", deny_unknown_fields)] |
| pub struct MyStruct { |
| #[serde(rename = "myNumber")] |
| pub my_int: i32, |
| pub my_bool: bool, |
| #[serde(default)] |
| pub my_nullable_enum: Option<MyEnum>, |
| } |
| |
| #[derive(Deserialize, Serialize, JsonSchema)] |
| #[serde(untagged)] |
| pub enum MyEnum { |
| StringNewType(String), |
| StructVariant { floats: Vec<f32> }, |
| } |
| |
| fn main() { |
| let schema = schema_for!(MyStruct); |
| println!("{}", serde_json::to_string_pretty(&schema).unwrap()); |
| } |