use confgr::prelude::*; mod common; #[derive(Config, Default)] #[config(prefix = "NESTED")] struct Nested { #[config(prefix = "inner_override")] name: String, detail: String, } #[derive(Config, Default)] #[config(prefix = "TEST")] struct NestedTest { id: i32, #[config(nest)] nested: Nested, } #[test] fn test_nested() { std::env::set_var("TEST_ID", "10"); std::env::set_var("NESTED_DETAIL", "NestedDetail"); std::env::set_var("INNER_OVERRIDE_NAME", "Inner"); let config = NestedTest::load_config(); assert_eq!( config.id, common::get_var("TEST_ID").parse::().unwrap() ); assert_eq!(config.nested.detail, common::get_var("NESTED_DETAIL")); assert_eq!(config.nested.name, common::get_var("INNER_OVERRIDE_NAME")); }