use confgr::prelude::*; use serde::Deserialize; #[derive(Debug, Deserialize, Clone)] struct NonDefaultType { value: String, } fn default_non_default_type() -> NonDefaultType { NonDefaultType { value: "default_value".to_string(), } } #[derive(Config)] struct TestConfig { #[config(skip)] foreign_type: NonDefaultType, } impl Default for TestConfig { fn default() -> Self { Self { foreign_type: default_non_default_type(), } } } #[test] fn test_non_default_foreign_type_is_valid() { let config = TestConfig::load_config(); assert_eq!(config.foreign_type.value, "default_value"); }