polygot/
polygot.rs

1use quick_type_schema::*;
2use schemars::JsonSchema;
3
4#[derive(JsonSchema)]
5pub enum OtherStruct {
6    Thing,
7    AnotherThing,
8}
9
10fn main() {
11    let mut gen = CodegenContext::new("MyData", None);
12    gen.add_type::<OtherStruct>();
13
14    let languages = &[
15        Language::Typescript(TypescriptOptions {
16            prefer_unions: true,
17            ..Default::default()
18        }),
19        Language::JsonSchema(Default::default()),
20        Language::CSharp(Default::default()),
21        Language::Crystal(Default::default()),
22        Language::Dart(Default::default()),
23        Language::Elm(Default::default()),
24        Language::Go(Default::default()),
25        Language::Haskell(Default::default()),
26        Language::Python(Default::default()),
27        Language::Ruby(Default::default()),
28        Language::Rust(Default::default()),
29        Language::Smithy(Default::default()),
30        Language::Swift(Default::default()),
31    ];
32
33    for lang in languages {
34        eprintln!("--- {}", lang.name());
35        eprintln!("{}", gen.finish(lang.clone()));
36    }
37}