A better Rust ATProto crate
103
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 37 lines 1.5 kB view raw
1use jacquard_lexicon::codegen::{CodeGenerator, CodegenMode}; 2use jacquard_lexicon::corpus::LexiconCorpus; 3use std::path::PathBuf; 4 5fn main() { 6 let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); 7 let fixtures_dir = manifest_dir.join("fixtures"); 8 9 let corpus = LexiconCorpus::load_from_dir(&fixtures_dir).expect("load test lexicons"); 10 11 // Generate Pretty mode output into src/generated/pretty/. 12 // We generate into src/ (not OUT_DIR) because `mod` declarations 13 // resolve relative to the source file, and include!() cannot handle 14 // multi-file module trees. 15 let pretty_dir = manifest_dir.join("src/generated/pretty"); 16 if pretty_dir.exists() { 17 std::fs::remove_dir_all(&pretty_dir).expect("clean pretty output"); 18 } 19 std::fs::create_dir_all(&pretty_dir).unwrap(); 20 let codegen = CodeGenerator::with_mode(&corpus, "crate::pretty", CodegenMode::Pretty); 21 codegen 22 .write_to_disk(&pretty_dir) 23 .expect("pretty mode codegen"); 24 25 // Generate Macro mode output into src/generated/macro_mode/. 26 let macro_dir = manifest_dir.join("src/generated/macro_mode"); 27 if macro_dir.exists() { 28 std::fs::remove_dir_all(&macro_dir).expect("clean macro output"); 29 } 30 std::fs::create_dir_all(&macro_dir).unwrap(); 31 let codegen = CodeGenerator::with_mode(&corpus, "crate::macro_mode", CodegenMode::Macro); 32 codegen 33 .write_to_disk(&macro_dir) 34 .expect("macro mode codegen"); 35 36 println!("cargo::rerun-if-changed=fixtures"); 37}