app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

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:
Mapp/src/config.rs | 36+++++++++++++++++++++++++++++++++++-
Mapp/src/lib.rs | 3+++
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,