@@ -430,7 +430,7 @@ impl QuicklinkLink {
430430 /// if any.
431431 pub ( crate ) fn concatenate_url (
432432 & self ,
433- user_supplied_args : & Option < HashMap < String , String > > ,
433+ user_supplied_args : & Option < HashMap < String , Json > > ,
434434 ) -> String {
435435 let mut out = String :: new ( ) ;
436436 for component in self . components . iter ( ) {
@@ -442,20 +442,23 @@ impl QuicklinkLink {
442442 argument_name,
443443 default,
444444 } => {
445- let opt_argument_value = {
445+ let opt_argument_value: Option < & str > = {
446446 let user_supplied_arg = user_supplied_args
447447 . as_ref ( )
448448 . and_then ( |map| map. get ( argument_name. as_str ( ) ) ) ;
449449
450450 if user_supplied_arg. is_some ( ) {
451- user_supplied_arg
451+ user_supplied_arg. map ( |json| {
452+ json. as_str ( )
453+ . expect ( "quicklink should provide string arguments" )
454+ } )
452455 } else {
453- default. as_ref ( )
456+ default. as_deref ( )
454457 }
455458 } ;
456459
457460 let argument_value_str = match opt_argument_value {
458- Some ( str) => str. as_str ( ) ,
461+ Some ( str) => str,
459462 // None => an empty string
460463 None => "" ,
461464 } ;
@@ -1763,7 +1766,7 @@ mod tests {
17631766 ] ,
17641767 } ;
17651768 let mut user_args = HashMap :: new ( ) ;
1766- user_args. insert ( "other_param" . to_string ( ) , "value" . to_string ( ) ) ;
1769+ user_args. insert ( "other_param" . to_string ( ) , Json :: String ( "value" . to_string ( ) ) ) ;
17671770 let result = link. concatenate_url ( & Some ( user_args) ) ;
17681771 assert_eq ! ( result, "https://www.google.com/search?q=" ) ;
17691772 }
@@ -1800,7 +1803,7 @@ mod tests {
18001803 ] ,
18011804 } ;
18021805 let mut user_args = HashMap :: new ( ) ;
1803- user_args. insert ( "other_param" . to_string ( ) , "value" . to_string ( ) ) ;
1806+ user_args. insert ( "other_param" . to_string ( ) , Json :: String ( "value" . to_string ( ) ) ) ;
18041807 let result = link. concatenate_url ( & Some ( user_args) ) ;
18051808 assert_eq ! ( result, "https://www.google.com/search?q=rust" ) ;
18061809 }
@@ -1823,7 +1826,7 @@ mod tests {
18231826 ] ,
18241827 } ;
18251828 let mut user_args = HashMap :: new ( ) ;
1826- user_args. insert ( "query" . to_string ( ) , "python" . to_string ( ) ) ;
1829+ user_args. insert ( "query" . to_string ( ) , Json :: String ( "python" . to_string ( ) ) ) ;
18271830 let result = link. concatenate_url ( & Some ( user_args) ) ;
18281831 assert_eq ! ( result, "https://www.google.com/search?q=python" ) ;
18291832 }
0 commit comments