A better Rust ATProto crate

codegen...

Orual 09776604 2d1a6513

Changed files
+22 -15
crates
jacquard-lexicon
+5 -5
Cargo.lock
··· 2288 2288 [[package]] 2289 2289 name = "jacquard-api" 2290 2290 version = "0.8.0" 2291 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#36ad41ada5a23033d1ce344143ccb96e005b8779" 2291 + source = "git+https://tangled.org/@nonbinary.computer/jacquard#2d1a65132a44553aa3f7e98c8bc7a715647f7cd6" 2292 2292 dependencies = [ 2293 2293 "bon", 2294 2294 "bytes", ··· 2378 2378 [[package]] 2379 2379 name = "jacquard-common" 2380 2380 version = "0.8.0" 2381 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#36ad41ada5a23033d1ce344143ccb96e005b8779" 2381 + source = "git+https://tangled.org/@nonbinary.computer/jacquard#2d1a65132a44553aa3f7e98c8bc7a715647f7cd6" 2382 2382 dependencies = [ 2383 2383 "base64 0.22.1", 2384 2384 "bon", ··· 2431 2431 [[package]] 2432 2432 name = "jacquard-derive" 2433 2433 version = "0.8.0" 2434 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#36ad41ada5a23033d1ce344143ccb96e005b8779" 2434 + source = "git+https://tangled.org/@nonbinary.computer/jacquard#2d1a65132a44553aa3f7e98c8bc7a715647f7cd6" 2435 2435 dependencies = [ 2436 2436 "heck 0.5.0", 2437 2437 "jacquard-lexicon 0.8.0 (git+https://tangled.org/@nonbinary.computer/jacquard)", ··· 2468 2468 [[package]] 2469 2469 name = "jacquard-identity" 2470 2470 version = "0.8.0" 2471 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#36ad41ada5a23033d1ce344143ccb96e005b8779" 2471 + source = "git+https://tangled.org/@nonbinary.computer/jacquard#2d1a65132a44553aa3f7e98c8bc7a715647f7cd6" 2472 2472 dependencies = [ 2473 2473 "bon", 2474 2474 "bytes", ··· 2542 2542 [[package]] 2543 2543 name = "jacquard-lexicon" 2544 2544 version = "0.8.0" 2545 - source = "git+https://tangled.org/@nonbinary.computer/jacquard#36ad41ada5a23033d1ce344143ccb96e005b8779" 2545 + source = "git+https://tangled.org/@nonbinary.computer/jacquard#2d1a65132a44553aa3f7e98c8bc7a715647f7cd6" 2546 2546 dependencies = [ 2547 2547 "glob", 2548 2548 "heck 0.5.0",
+17 -10
crates/jacquard-lexicon/src/codegen.rs
··· 4 4 use proc_macro2::TokenStream; 5 5 use quote::quote; 6 6 7 - mod utils; 8 - mod names; 9 - mod lifetime; 10 - mod types; 11 - mod structs; 12 - mod xrpc; 13 - mod output; 14 - mod schema_impl; 7 + pub mod lifetime; 8 + pub mod names; 9 + pub mod output; 10 + pub mod schema_impl; 11 + pub mod structs; 12 + pub mod types; 13 + pub mod utils; 14 + pub mod xrpc; 15 15 16 16 /// Code generator for lexicon types 17 17 pub struct CodeGenerator<'c> { ··· 101 101 if let LexArrayItem::Union(union) = &array.items { 102 102 let union_name = format!("{}Item", type_name); 103 103 let refs: Vec<_> = union.refs.iter().cloned().collect(); 104 - let union_def = self.generate_union(nsid, &union_name, &refs, None, union.closed)?; 104 + let union_def = 105 + self.generate_union(nsid, &union_name, &refs, None, union.closed)?; 105 106 106 107 let union_ident = syn::Ident::new(&union_name, proc_macro2::Span::call_site()); 107 108 if needs_lifetime { ··· 180 181 // Top-level union generates an enum 181 182 let type_name = self.def_to_type_name(nsid, def_name); 182 183 let refs: Vec<_> = union.refs.iter().cloned().collect(); 183 - self.generate_union(nsid, &type_name, &refs, union.description.as_ref().map(|d| d.as_ref()), union.closed) 184 + self.generate_union( 185 + nsid, 186 + &type_name, 187 + &refs, 188 + union.description.as_ref().map(|d| d.as_ref()), 189 + union.closed, 190 + ) 184 191 } 185 192 } 186 193 }