use std::sync::Arc;
use apollo_configuration::configuration;
use apollo_configuration::parse_yaml;
use apollo_configuration::types::Duration;
#[configuration]
struct DurationConfig {
#[config(required)]
timeout: Duration,
}
#[configuration]
struct ArcConfig {
#[config(required)]
shared: Arc<DurationConfig>,
}
#[test]
fn arc_config_parses() {
let config: ArcConfig = parse_yaml(
r#"
shared:
timeout: 20s
"#,
&Default::default(),
)
.unwrap();
assert_eq!(*config.shared.timeout, std::time::Duration::from_secs(20));
}