From 771f46e5219a3091a1aabf2479e96ff190213000 Mon Sep 17 00:00:00 2001 From: Test User Date: Fri, 12 Sep 2025 15:54:30 +0200 Subject: [PATCH] fix --- src/lib.rs | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 83d2de9..63221bd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -134,7 +134,14 @@ fn generate_parse_info_impl( } fn __inline_find_config(base_name: &str, fmts: &[&str]) -> Option { - let mut dir = std::env::current_dir().ok()?; + let mut dir = match std::env::current_dir() { + Ok(dir) => dir, + Err(e) => { + eprintln!("Warning: Failed to get current directory for config discovery: {}", e); + eprintln!("Config file discovery will be skipped"); + return None; + } + }; let mut found: Option = None; loop { @@ -209,15 +216,23 @@ fn generate_parse_info_impl( } } - let built = config_data.build().unwrap_or_else(|e| { - eprintln!("Failed to build config: {}", e); - ::config::Config::default() - }); - let ephemeral_cfg: #cfg_ident = built.clone().try_deserialize().unwrap_or_else(|e| { - eprintln!("Failed to deserialize config into struct: {}", e); - eprintln!("Config data after build: {:#?}", built); - #cfg_ident::default() - }); + let built = match config_data.build() { + Ok(config) => config, + Err(e) => { + eprintln!("Warning: Failed to build config: {}", e); + eprintln!("Continuing with default configuration"); + ::config::Config::default() + } + }; + let ephemeral_cfg: #cfg_ident = match built.clone().try_deserialize() { + Ok(cfg) => cfg, + Err(e) => { + eprintln!("Warning: Failed to deserialize config into struct: {}", e); + eprintln!("Config data after build: {:#?}", built); + eprintln!("Continuing with default configuration"); + #cfg_ident::default() + } + }; let final_struct = #struct_ident {