A better Rust ATProto crate
at main 26 lines 782 B view raw
1use clap::Parser; 2use jacquard_lexgen::cli::CodegenArgs; 3use jacquard_lexicon::codegen::{CodeGenerator, CodegenMode}; 4use jacquard_lexicon::corpus::LexiconCorpus; 5 6fn main() -> miette::Result<()> { 7 let args = CodegenArgs::parse(); 8 let mode = if args.macro_mode { 9 CodegenMode::Macro 10 } else { 11 CodegenMode::Pretty 12 }; 13 14 println!("Loading lexicons from {:?}...", args.input); 15 let corpus = LexiconCorpus::load_from_dir(&args.input)?; 16 17 println!("Loaded {} lexicon documents", corpus.iter().count()); 18 19 println!("Generating code (mode: {:?})...", mode); 20 let codegen = CodeGenerator::with_mode(&corpus, "crate".to_string(), mode); 21 codegen.write_to_disk(&args.output)?; 22 23 println!("Generated code to {:?}", args.output); 24 25 Ok(()) 26}