@@ -83,36 +83,26 @@ impl Source for Environment {
83
83
let mut m = HashMap :: new ( ) ;
84
84
let uri: String = "the environment" . into ( ) ;
85
85
86
- let separator = match self . separator {
87
- Some ( ref separator) => separator,
88
- _ => "" ,
89
- } ;
90
-
91
- let group_separator = match self . separator {
92
- Some ( ref separator) => separator,
93
- _ => "_" ,
94
- } ;
86
+ let separator = self . separator . as_deref ( ) . unwrap_or ( "" ) ;
87
+ let group_separator = self . separator . as_deref ( ) . unwrap_or ( "_" ) ;
95
88
96
89
// Define a prefix pattern to test and exclude from keys
97
90
let prefix_pattern = self
98
91
. prefix
99
92
. as_ref ( )
100
- . map ( |prefix| format ! ( "{}{}" , prefix. clone ( ) , group_separator) ) ;
93
+ . map ( |prefix| format ! ( "{}{}" , prefix, group_separator) . to_lowercase ( ) ) ;
101
94
102
95
for ( key, value) in env:: vars ( ) {
103
96
// Treat empty environment variables as unset
104
97
if self . ignore_empty && value. is_empty ( ) {
105
98
continue ;
106
99
}
107
100
108
- let mut key = key. to_string ( ) ;
101
+ let mut key = key. to_lowercase ( ) ;
109
102
110
103
// Check for prefix
111
104
if let Some ( ref prefix_pattern) = prefix_pattern {
112
- if key
113
- . to_lowercase ( )
114
- . starts_with ( & prefix_pattern. to_lowercase ( ) )
115
- {
105
+ if key. starts_with ( prefix_pattern) {
116
106
// Remove this prefix from the key
117
107
key = key[ prefix_pattern. len ( ) ..] . to_string ( ) ;
118
108
} else {
@@ -141,7 +131,7 @@ impl Source for Environment {
141
131
ValueKind :: String ( value)
142
132
} ;
143
133
144
- m. insert ( key. to_lowercase ( ) , Value :: new ( Some ( & uri) , value) ) ;
134
+ m. insert ( key, Value :: new ( Some ( & uri) , value) ) ;
145
135
}
146
136
147
137
Ok ( m)
0 commit comments