Makes it much clearer what the problem is, and where to find the invalid path
V5S5K33ALIEG5ZABUSAPO4ULHEBFDB2PLTW27A4BFS342SJG7URQC NO3PDO7PY7J3WPADNCS5VD6HKFY63E23I3SDR4DHXNVQJTG27RAAC UOMQT7LTURIIWHZT2ZHLCJG6XESYTN26EJC7IHRFR4PYJ355PNYAC O77KA6C4UJGZXVGPEA7WCRQH6XYQJPWETSPDXI3VOKOSRQND7JEQC SHNZZSZGIBTTD4IV5SMW5BIN5DORUWQVTVTNB5RMRD5CTFNOMJ6AC WBI5HFOBBUMDSGKY2RX3YA6N7YDCJEP23JNEJ7PG5VZXHLYIRJRQC UKFEFT6LSI4K7X6UHQFZYD52DILKXMZMYSO2UYS2FCHNPXIF4BEQC VNSHGQYNPGKGGPYNVP4Z2RWD7JCSDJVYAADD6UXWBYL6ZRXKLE4AC 56F2YE6HUZ76U4QBPUDJ2VQLJ75TQYNTVQIOX4QBOZ2H6GJKRGUQC pub fn localize(path: &syn::LitStr, derive_input: &DeriveInput) -> TokenStream {let group = attribute_groups(path);
pub fn localize(path: &syn::LitStr,derive_input: &DeriveInput,) -> Result<TokenStream, wax::GlobError> {let group = attribute_groups(path)?;
let parsed_attribute: syn::LitStr = parse_macro_input!(attribute);let parsed_input = parse_macro_input!(item as DeriveInput);
let derive_attribute: syn::LitStr = parse_macro_input!(attribute);let derive_input = parse_macro_input!(item);
let implementation = fluent_embed::localize(&parsed_attribute, &parsed_input);
let implementation = match fluent_embed::localize(&derive_attribute, &derive_input) {Ok(implementation) => implementation,Err(glob_error) => {// Emit the relevant error messagesmatch glob_error {GlobError::Build(_build_error) => todo!(),GlobError::Walk(walk_error) => {// Generate help textlet help = if let Some(path) = walk_error.path() {let path_name = path.to_str().unwrap();// Might hit an error if file exists but insufficient permissionsmatch path.try_exists() {Ok(true) => {format!("the path `{path_name}` exists, but unable to access it")}_ => format!("the path `{path_name}` doesn't seem to exist"),}} else {String::from("no associated path")};emit_error! { derive_attribute, "error at depth {} while walking path", walk_error.depth();help = help;}}};// Generate a minimal `localize()` implementation so the error is self-containedlet ident = &derive_input.ident;quote! {impl #ident {fn localize(&self) -> String {unimplemented!("Encountered error in proc-macro")}}}}};
"syn",
"syn 2.0.48",][[package]]name = "proc-macro-error"version = "1.0.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"dependencies = ["proc-macro-error-attr","proc-macro2","quote","syn 1.0.109","version_check",][[package]]name = "proc-macro-error-attr"version = "1.0.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"dependencies = ["proc-macro2","quote","version_check",