@@ -227,10 +227,10 @@ impl Config {
227
227
let value = Value :: try_from ( value)
228
228
. with_context ( || "Unable to represent the item as a JSON Value" ) ?;
229
229
230
- if index. starts_with ( "book." ) {
231
- self . book . update_value ( & index [ 5 .. ] , value) ;
232
- } else if index. starts_with ( "build." ) {
233
- self . build . update_value ( & index [ 6 .. ] , value) ;
230
+ if let Some ( key ) = index. strip_prefix ( "book." ) {
231
+ self . book . update_value ( key , value) ;
232
+ } else if let Some ( key ) = index. strip_prefix ( "build." ) {
233
+ self . build . update_value ( key , value) ;
234
234
} else {
235
235
self . rest . insert ( index, value) ;
236
236
}
@@ -371,15 +371,8 @@ impl Serialize for Config {
371
371
}
372
372
373
373
fn parse_env ( key : & str ) -> Option < String > {
374
- const PREFIX : & str = "MDBOOK_" ;
375
-
376
- if key. starts_with ( PREFIX ) {
377
- let key = & key[ PREFIX . len ( ) ..] ;
378
-
379
- Some ( key. to_lowercase ( ) . replace ( "__" , "." ) . replace ( "_" , "-" ) )
380
- } else {
381
- None
382
- }
374
+ key. strip_prefix ( "MDBOOK_" )
375
+ . map ( |key| key. to_lowercase ( ) . replace ( "__" , "." ) . replace ( '_' , "-" ) )
383
376
}
384
377
385
378
fn is_legacy_format ( table : & Value ) -> bool {
@@ -828,7 +821,7 @@ mod tests {
828
821
"# ;
829
822
830
823
let got = Config :: from_str ( src) . unwrap ( ) ;
831
- assert_eq ! ( got. html_config( ) . unwrap( ) . playground. runnable, false ) ;
824
+ assert ! ( ! got. html_config( ) . unwrap( ) . playground. runnable) ;
832
825
}
833
826
834
827
#[ test]
@@ -1037,7 +1030,7 @@ mod tests {
1037
1030
fn encode_env_var ( key : & str ) -> String {
1038
1031
format ! (
1039
1032
"MDBOOK_{}" ,
1040
- key. to_uppercase( ) . replace( '.' , "__" ) . replace( "-" , "_" )
1033
+ key. to_uppercase( ) . replace( '.' , "__" ) . replace( '-' , "_" )
1041
1034
)
1042
1035
}
1043
1036
@@ -1061,11 +1054,10 @@ mod tests {
1061
1054
}
1062
1055
1063
1056
#[ test]
1064
- #[ allow( clippy:: approx_constant) ]
1065
1057
fn update_config_using_env_var_and_complex_value ( ) {
1066
1058
let mut cfg = Config :: default ( ) ;
1067
1059
let key = "foo-bar.baz" ;
1068
- let value = json ! ( { "array" : [ 1 , 2 , 3 ] , "number" : 3.14 } ) ;
1060
+ let value = json ! ( { "array" : [ 1 , 2 , 3 ] , "number" : 13.37 } ) ;
1069
1061
let value_str = serde_json:: to_string ( & value) . unwrap ( ) ;
1070
1062
1071
1063
assert ! ( cfg. get( key) . is_none( ) ) ;
@@ -1184,15 +1176,15 @@ mod tests {
1184
1176
"# ;
1185
1177
let got = Config :: from_str ( src) . unwrap ( ) ;
1186
1178
let html_config = got. html_config ( ) . unwrap ( ) ;
1187
- assert_eq ! ( html_config. print. enable, false ) ;
1188
- assert_eq ! ( html_config. print. page_break, true ) ;
1179
+ assert ! ( ! html_config. print. enable) ;
1180
+ assert ! ( html_config. print. page_break) ;
1189
1181
let src = r#"
1190
1182
[output.html.print]
1191
1183
page-break = false
1192
1184
"# ;
1193
1185
let got = Config :: from_str ( src) . unwrap ( ) ;
1194
1186
let html_config = got. html_config ( ) . unwrap ( ) ;
1195
- assert_eq ! ( html_config. print. enable, true ) ;
1196
- assert_eq ! ( html_config. print. page_break, false ) ;
1187
+ assert ! ( html_config. print. enable) ;
1188
+ assert ! ( ! html_config. print. page_break) ;
1197
1189
}
1198
1190
}
0 commit comments