@@ -83,36 +83,26 @@ impl Source for Environment {
8383 let mut m = HashMap :: new ( ) ;
8484 let uri: String = "the environment" . into ( ) ;
8585
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 ( "_" ) ;
9588
9689 // Define a prefix pattern to test and exclude from keys
9790 let prefix_pattern = self
9891 . prefix
9992 . as_ref ( )
100- . map ( |prefix| format ! ( "{}{}" , prefix. clone ( ) , group_separator) ) ;
93+ . map ( |prefix| format ! ( "{}{}" , prefix, group_separator) . to_lowercase ( ) ) ;
10194
10295 for ( key, value) in env:: vars ( ) {
10396 // Treat empty environment variables as unset
10497 if self . ignore_empty && value. is_empty ( ) {
10598 continue ;
10699 }
107100
108- let mut key = key. to_string ( ) ;
101+ let mut key = key. to_lowercase ( ) ;
109102
110103 // Check for prefix
111104 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) {
116106 // Remove this prefix from the key
117107 key = key[ prefix_pattern. len ( ) ..] . to_string ( ) ;
118108 } else {
@@ -141,7 +131,7 @@ impl Source for Environment {
141131 ValueKind :: String ( value)
142132 } ;
143133
144- m. insert ( key. to_lowercase ( ) , Value :: new ( Some ( & uri) , value) ) ;
134+ m. insert ( key, Value :: new ( Some ( & uri) , value) ) ;
145135 }
146136
147137 Ok ( m)
0 commit comments