summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJérémy Audiger <jeremy.audiger@ioterop.com>2022-03-11 07:36:50 +0000
committerJérémy Audiger <jeremy.audiger@ioterop.com>2022-03-11 07:36:50 +0000
commite765bd484eceead51314ed33e63ff6bf10475f6b (patch)
treed882d973ea5eadf30114bb6222c71a4f638a875b /src
parent2e9ccf751dddf1f52b4634dc1ef4ed954cf0123e (diff)
chore: add the possibility to keep the prefix from env var.
Diffstat (limited to 'src')
-rw-r--r--src/env.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/env.rs b/src/env.rs
index 03d5785..432df2c 100644
--- a/src/env.rs
+++ b/src/env.rs
@@ -37,6 +37,9 @@ pub struct Environment {
/// Parses booleans, integers and floats if they're detected (can be safely parsed).
try_parsing: bool,
+ // Preserve the prefix while parsing
+ keep_prefix: bool,
+
/// Alternate source for the environment. This can be used when you want to test your own code
/// using this source, without the need to change the actual system environment variables.
///
@@ -136,6 +139,11 @@ impl Environment {
self
}
+ pub fn keep_prefix(mut self, keep: bool) -> Self {
+ self.keep_prefix = keep;
+ self
+ }
+
pub fn source(mut self, source: Option<Map<String, String>>) -> Self {
self.source = source;
self
@@ -175,8 +183,10 @@ impl Source for Environment {
// Check for prefix
if let Some(ref prefix_pattern) = prefix_pattern {
if key.starts_with(prefix_pattern) {
- // Remove this prefix from the key
- key = key[prefix_pattern.len()..].to_string();
+ if !self.keep_prefix {
+ // Remove this prefix from the key
+ key = key[prefix_pattern.len()..].to_string();
+ }
} else {
// Skip this key
return;