diff --git a/src/env.rs b/src/env.rs index ce670695..4e35c2b8 100644 --- a/src/env.rs +++ b/src/env.rs @@ -71,14 +71,9 @@ impl Source for Environment { let mut m = HashMap::new(); let uri: String = "the environment".into(); - let separator = match self.separator { - Some(ref separator) => separator, - _ => "", - }; - // Define a prefix pattern to test and exclude from keys let prefix_pattern = match self.prefix { - Some(ref prefix) => Some(prefix.clone() + "_"), + Some(ref prefix) => Some((prefix.clone() + "_").to_lowercase()), _ => None, }; @@ -88,14 +83,11 @@ impl Source for Environment { continue; } - let mut key = key.to_string(); + let mut key = key.to_lowercase(); // Check for prefix if let Some(ref prefix_pattern) = prefix_pattern { - if key - .to_lowercase() - .starts_with(&prefix_pattern.to_lowercase()) - { + if key.starts_with(prefix_pattern) { // Remove this prefix from the key key = key[prefix_pattern.len()..].to_string(); } else { @@ -104,13 +96,12 @@ impl Source for Environment { } } - // If separator is given replace with `.` - if !separator.is_empty() { + if let Some(ref separator) = self.separator { key = key.replace(separator, "."); } m.insert( - key.to_lowercase(), + key, Value::new(Some(&uri), ValueKind::String(value)), ); }