Function simple_env_load::parse_and_set[][src]

pub fn parse_and_set(data: &str, set: fn(k: &str, v: &str))
Expand description

Parse an env string and calls a function for each key=value pair

This is useful for mocking and testing

let data = r#"
TEST_DATA=bar                 # spaces are optional
TEST_BAZ = "baz"              # double quotes are removed
TEST_QUX = 'qux'              # single quotes are removed
TEST_FOO = "'nested'"         # nested quotes are preserved
TEST_BAR = '"nested"'         # nested quotes are preserved

"#;
// just set the env. vars, but this can be any fn(&str, &str)
simple_env_load::parse_and_set(&data, |k, v| std::env::set_var(k, v));
assert_eq!(std::env::var("TEST_DATA").unwrap(), "bar");
assert_eq!(std::env::var("TEST_BAZ").unwrap(), "baz");
assert_eq!(std::env::var("TEST_QUX").unwrap(), "qux");;
assert_eq!(std::env::var("TEST_FOO").unwrap(), "'nested'");
assert_eq!(std::env::var("TEST_BAR").unwrap(), "\"nested\"");