Generate schema from any serializable value (#75)

Implement schema_for_value!(...) macro
This commit is contained in:
Graham Esau 2021-03-25 18:32:28 +00:00 committed by GitHub
parent 0957204bc1
commit f6482fd460
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 1179 additions and 5 deletions

View file

@ -0,0 +1,24 @@
use schemars::schema_for_value;
use serde::Serialize;
#[derive(Serialize)]
pub struct MyStruct {
pub my_int: i32,
pub my_bool: bool,
pub my_nullable_enum: Option<MyEnum>,
}
#[derive(Serialize)]
pub enum MyEnum {
StringNewType(String),
StructVariant { floats: Vec<f32> },
}
fn main() {
let schema = schema_for_value!(MyStruct {
my_int: 123,
my_bool: true,
my_nullable_enum: Some(MyEnum::StringNewType("foo".to_string()))
});
println!("{}", serde_json::to_string_pretty(&schema).unwrap());
}