summaryrefslogtreecommitdiffstats
path: root/examples/env-list/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/env-list/main.rs')
-rw-r--r--examples/env-list/main.rs25
1 files changed, 25 insertions, 0 deletions
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<String>,
+}
+
+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");
+}