Skip to content

Commit d5bbdef

Browse files
committed
chore: more error handling (no unwraps, only expects in codepath's that cannot fail)
1 parent 8a010a8 commit d5bbdef

File tree

9 files changed

+182
-138
lines changed

9 files changed

+182
-138
lines changed

build.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ fn main() {
2323
} else {
2424
let epoch = std::time::SystemTime::now()
2525
.duration_since(std::time::UNIX_EPOCH)
26-
.unwrap()
26+
.expect("Cannot fail? (Getting epoch)")
2727
.as_secs();
2828

2929
format!("D{epoch}")
@@ -37,6 +37,11 @@ fn main() {
3737
.replace("{hw}", hw)
3838
.replace("{firmware}", "STATION");
3939

40-
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());
41-
std::fs::write(out_dir.join("version.rs"), generated.trim()).unwrap();
40+
let Ok(out_dir) = std::env::var("OUT_DIR").map(PathBuf::from) else {
41+
panic!("Compiler should set OUT_DIR!");
42+
};
43+
44+
std::fs::write(out_dir.join("version.rs"), generated.trim()).unwrap_or_else(|_| {
45+
panic!("build.rs version.rs inside outdir ({out_dir:?}) failed to write!")
46+
});
4247
}

macros/Cargo.lock

Lines changed: 25 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

macros/src/lib.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,15 @@ pub fn generate_button_handler_enum(args: TokenStream) -> TokenStream {
6464
panic!("File path not found!");
6565
};
6666

67-
let read = std::fs::read_to_string(&path);
68-
if let Err(_) = read {
67+
let Ok(read) = std::fs::read_to_string(&path) else {
6968
return quote! {
7069
#[doc(hidden)]
7170
pub enum HandlersDerive {}
7271
}
7372
.into();
74-
}
75-
76-
let read = read.unwrap();
77-
let input_file = syn::parse_file(&read).unwrap();
73+
};
7874

75+
let input_file = syn::parse_file(&read).expect("SYN Cannot parse file");
7976
let mut output_ty: Option<proc_macro2::TokenStream> = None;
8077
let mut output_enum = Vec::new();
8178
let mut output_enum_impl = Vec::new();

macros/src/translations.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ impl Parse for TranslationsHandler {
3030
pub fn load_translations_macro(args: TokenStream) -> TokenStream {
3131
let TranslationsHandler { path } = syn::parse_macro_input!(args as TranslationsHandler);
3232

33-
let read = std::fs::read(&path).unwrap();
34-
let translations: Vec<TranslationRecord> = serde_json::from_slice(&read).unwrap();
33+
let read = std::fs::read(&path).expect("Cannot read translations file!");
34+
let translations: Vec<TranslationRecord> = serde_json::from_slice(&read).unwrap_or(Vec::new());
3535

3636
let translations_count = translations.len();
3737
let declaration = quote! {

0 commit comments

Comments
 (0)