commit b2aff3564eeaeaf4a9dab7b41b58911ff2a590c6
parent 2adb6397bbe7d141b7473f782d0d18ad59e1593c
Author: triesap <triesap@radroots.dev>
Date: Mon, 19 Jan 2026 17:01:22 +0000
app: add app config default helpers
- add AppConfig wrapper for key map config
- provide empty constructor for app config
- add app_config_default and app_config_from_env helpers
- add unit tests for config defaults
Diffstat:
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/app/src/config.rs b/app/src/config.rs
@@ -24,9 +24,30 @@ impl AppKeyMapConfig {
}
}
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub struct AppConfig {
+ pub key_maps: AppKeyMapConfig,
+}
+
+impl AppConfig {
+ pub fn empty() -> Self {
+ Self {
+ key_maps: AppKeyMapConfig::empty(),
+ }
+ }
+}
+
+pub fn app_config_default() -> AppConfig {
+ AppConfig::empty()
+}
+
+pub fn app_config_from_env() -> AppConfig {
+ app_config_default()
+}
+
#[cfg(test)]
mod tests {
- use super::AppKeyMapConfig;
+ use super::{app_config_default, app_config_from_env, AppConfig, AppKeyMapConfig};
#[test]
fn key_map_config_defaults_empty() {
@@ -35,4 +56,17 @@ mod tests {
assert!(config.param_map.is_empty());
assert!(config.obj_map.is_empty());
}
+
+ #[test]
+ fn app_config_defaults_empty() {
+ let config = AppConfig::empty();
+ assert!(config.key_maps.key_map.is_empty());
+ }
+
+ #[test]
+ fn app_config_helpers_return_defaults() {
+ let config = app_config_default();
+ let from_env = app_config_from_env();
+ assert_eq!(config, from_env);
+ }
}
diff --git a/app/src/lib.rs b/app/src/lib.rs
@@ -9,6 +9,9 @@ mod entry;
pub use app::App;
pub use context::{app_context, AppContext};
pub use config::{
+ app_config_default,
+ app_config_from_env,
+ AppConfig,
AppDatastoreKeyMap,
AppDatastoreKeyObjMap,
AppDatastoreKeyParam,