@@ -979,20 +979,21 @@ impl Target {
979
979
macro_rules! key {
980
980
( $key_name: ident) => ( {
981
981
let name = ( stringify!( $key_name) ) . replace( "_" , "-" ) ;
982
- obj. find( & name[ ..] ) . map( |o| o. as_string( )
983
- . map( |s| base. options. $key_name = s. to_string( ) ) ) ;
982
+ if let Some ( s) = obj. find( & name) . and_then( Json :: as_string) {
983
+ base. options. $key_name = s. to_string( ) ;
984
+ }
984
985
} ) ;
985
986
( $key_name: ident, bool ) => ( {
986
987
let name = ( stringify!( $key_name) ) . replace( "_" , "-" ) ;
987
- obj. find( & name[ .. ] )
988
- . map ( |o| o . as_boolean ( )
989
- . map ( |s| base . options . $key_name = s ) ) ;
988
+ if let Some ( s ) = obj. find( & name) . and_then ( Json :: as_boolean ) {
989
+ base . options . $key_name = s ;
990
+ }
990
991
} ) ;
991
992
( $key_name: ident, Option <u64 >) => ( {
992
993
let name = ( stringify!( $key_name) ) . replace( "_" , "-" ) ;
993
- obj. find( & name[ .. ] )
994
- . map ( |o| o . as_u64 ( )
995
- . map ( |s| base . options . $key_name = Some ( s ) ) ) ;
994
+ if let Some ( s ) = obj. find( & name) . and_then ( Json :: as_u64 ) {
995
+ base . options . $key_name = Some ( s ) ;
996
+ }
996
997
} ) ;
997
998
( $key_name: ident, MergeFunctions ) => ( {
998
999
let name = ( stringify!( $key_name) ) . replace( "_" , "-" ) ;
@@ -1034,19 +1035,19 @@ impl Target {
1034
1035
} ) ;
1035
1036
( $key_name: ident, list) => ( {
1036
1037
let name = ( stringify!( $key_name) ) . replace( "_" , "-" ) ;
1037
- obj. find( & name[ .. ] ) . map ( |o| o . as_array( )
1038
- . map ( |v| base. options. $key_name = v. iter( )
1039
- . map( |a| a. as_string( ) . unwrap( ) . to_string( ) ) . collect ( )
1040
- )
1041
- ) ;
1038
+ if let Some ( v ) = obj. find( & name) . and_then ( Json :: as_array) {
1039
+ base. options. $key_name = v. iter( )
1040
+ . map( |a| a. as_string( ) . unwrap( ) . to_string( ) )
1041
+ . collect ( ) ;
1042
+ }
1042
1043
} ) ;
1043
1044
( $key_name: ident, opt_list) => ( {
1044
1045
let name = ( stringify!( $key_name) ) . replace( "_" , "-" ) ;
1045
- obj. find( & name[ .. ] ) . map ( |o| o . as_array( )
1046
- . map ( |v| base. options. $key_name = Some ( v. iter( )
1047
- . map( |a| a. as_string( ) . unwrap( ) . to_string( ) ) . collect ( ) )
1048
- )
1049
- ) ;
1046
+ if let Some ( v ) = obj. find( & name) . and_then ( Json :: as_array) {
1047
+ base. options. $key_name = Some ( v. iter( )
1048
+ . map( |a| a. as_string( ) . unwrap( ) . to_string( ) )
1049
+ . collect ( ) ) ;
1050
+ }
1050
1051
} ) ;
1051
1052
( $key_name: ident, optional) => ( {
1052
1053
let name = ( stringify!( $key_name) ) . replace( "_" , "-" ) ;
0 commit comments