load_config reads file then delegates to load_config_str
Removes the duplicated collect-and-warn logic by having load_config
read the source from disk and call through to load_config_str.
https://claude.ai/code/session_015tdp3ahAmmdE69yCsV7J8b
diff --git a/quire-core/src/fennel.rs b/quire-core/src/fennel.rs
index c5619f8..aceb5ad 100644
--- a/quire-core/src/fennel.rs
+++ b/quire-core/src/fennel.rs
@@ -203,13 +203,8 @@ impl Fennel {
where
T: serde::de::DeserializeOwned,
{
- let name = path.display().to_string();
- let mut unknown = Vec::new();
- let result = Self::new()?.load_file(path, |path| unknown.push(path.to_string()))?;
- if !unknown.is_empty() {
- tracing::warn!(config = %name, fields = ?unknown, "unknown config fields ignored");
- }
- Ok(result)
+ let source = fs_err::read_to_string(path)?;
+ Self::load_config_str(&source, &path.display().to_string())
}
/// Create a fresh Fennel VM and parse `source` into `T`.