This is the first error case not handled by wax::GlobError
, so a simple thiserror
-based AttributeError
enum has replaced it.
RLX6XPNZKD6GIRLWKYXFH2RNIU4ZNXLMHXLOMID3E6H53QXXXNZQC
VYPJUPPKPVSIDCQPKZE2RJLMUQDI2IYV5COBQAEXI3VF3SF4CQTAC
NO3PDO7PY7J3WPADNCS5VD6HKFY63E23I3SDR4DHXNVQJTG27RAAC
O77KA6C4UJGZXVGPEA7WCRQH6XYQJPWETSPDXI3VOKOSRQND7JEQC
XGNME3WRU3MJDTFHUFJYARLVXWBZIH5ODBOIIFTXHNCBTZQH2R7QC
UOMQT7LTURIIWHZT2ZHLCJG6XESYTN26EJC7IHRFR4PYJ355PNYAC
V5S5K33ALIEG5ZABUSAPO4ULHEBFDB2PLTW27A4BFS342SJG7URQC
VNSHGQYNPGKGGPYNVP4Z2RWD7JCSDJVYAADD6UXWBYL6ZRXKLE4AC
SHNZZSZGIBTTD4IV5SMW5BIN5DORUWQVTVTNB5RMRD5CTFNOMJ6AC
UKFEFT6LSI4K7X6UHQFZYD52DILKXMZMYSO2UYS2FCHNPXIF4BEQC
let captured_locale = entry.matched().get(1).unwrap();
let captured_locale = if let Some(captured) = entry.matched().get(1) {
captured
} else {
return Err(AttributeError::NoMatches {
path: entry.path().to_path_buf(),
complete_match: entry.matched().complete().to_string(),
});
};
AttributeError::NoMatches {
path,
complete_match,
} => {
// Validate the assumption that the user has provided an exact path
assert!(path.exists());
assert_eq!(path.to_string_lossy(), complete_match);
emit_error! { derive_attribute, "cannot match against an exact path";
help = "The attribute should use glob syntax to match against multiple files";
note = "For example, you can:\n{}\n{}",
"- Match against directories: locale/**/errors.ftl",
"- Match against files: locale/*.ftl";
};
}