Add handling of nested configuration types via #[config(child)]

This commit is contained in:
Lukas Kalbertodt
2021-05-14 22:13:31 +02:00
parent 3fd3835fdf
commit 8abc07bcda
4 changed files with 131 additions and 30 deletions

View File

@@ -1,6 +1,16 @@
use std::net::IpAddr;
use confique::{Config, Partial};
#[derive(Debug, Config)]
struct Conf {
#[config(child)]
http: Http,
#[config(child)]
cat: Cat,
}
#[derive(Debug, Config)]
struct Http {
#[config(default = 8080)]
@@ -8,11 +18,14 @@ struct Http {
#[config(default = "127.0.0.1")]
bind: IpAddr,
}
#[derive(Debug, Config)]
struct Cat {
foo: Option<String>,
}
fn main() {
println!("{:?}", Http::from_partial(<Http as Config>::Partial::default_values()));
println!("{:#?}", Conf::from_partial(<Conf as Config>::Partial::default_values()));
}