From 53322d4ca277a2e55a7efeb654e400e5c05eb672 Mon Sep 17 00:00:00 2001 From: simon-an <26556185+simon-an@users.noreply.github.com> Date: Mon, 28 Feb 2022 18:14:36 +0100 Subject: feat: env contains list of strings Signed-off-by: simon-an <26556185+simon-an@users.noreply.github.com> --- examples/env-list/main.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 examples/env-list/main.rs (limited to 'examples') diff --git a/examples/env-list/main.rs b/examples/env-list/main.rs new file mode 100644 index 0000000..f567419 --- /dev/null +++ b/examples/env-list/main.rs @@ -0,0 +1,25 @@ +use config::Config; +#[derive(Debug, Default, serde_derive::Deserialize, PartialEq)] +struct AppConfig { + list: Vec, +} + +fn main() { + std::env::set_var("APP_LIST", "Hello World"); + + let config = Config::builder() + .add_source( + config::Environment::with_prefix("APP") + .try_parsing(true) + .separator("_") + .list_separator(" "), + ) + .build() + .unwrap(); + + let app: AppConfig = config.try_deserialize().unwrap(); + + assert_eq!(app.list, vec![String::from("Hello"), String::from("World")]); + + std::env::remove_var("APP_LIST"); +} -- cgit v1.2.3