@@ -13,10 +13,10 @@ pub async fn get_concerts(client: &reqwest::Client) -> Vec<core::Concert> {
13
13
println ! ( "Scraping Wigmore Hall concerts" ) ;
14
14
println ! ( "----------------------------------------" ) ;
15
15
16
- let wigmore_intermediate_concerts = get_api ( & client) . await ;
16
+ let wigmore_intermediate_concerts = get_api ( client) . await ;
17
17
18
18
let mut wigmore_concerts = stream:: iter ( & wigmore_intermediate_concerts[ ..40 ] )
19
- . map ( |concert| get_full_concert ( & concert, & client) )
19
+ . map ( |concert| get_full_concert ( concert, client) )
20
20
. buffer_unordered ( 10 )
21
21
. collect :: < Vec < Option < core:: Concert > > > ( )
22
22
. await
@@ -50,7 +50,7 @@ async fn get_api_page(
50
50
page_number
51
51
) ;
52
52
let json: serde_json:: Value = client. get ( url) . send ( ) . await . unwrap ( ) . json ( ) . await . unwrap ( ) ;
53
- let concerts = parse_api ( & json[ "items" ] . as_array ( ) . unwrap ( ) ) ;
53
+ let concerts = parse_api ( json[ "items" ] . as_array ( ) . unwrap ( ) ) ;
54
54
( concerts, json[ "totalPages" ] . as_u64 ( ) . unwrap ( ) )
55
55
}
56
56
@@ -94,8 +94,7 @@ async fn get_api(client: &reqwest::Client) -> Vec<WigmoreFrontPageConcert> {
94
94
let remaining_concerts: Vec < WigmoreFrontPageConcert > = join_all ( futures)
95
95
. await
96
96
. into_iter ( )
97
- . map ( |( concerts, _) | concerts)
98
- . flatten ( )
97
+ . flat_map ( |( concerts, _) | concerts)
99
98
. collect ( ) ;
100
99
concerts. extend ( remaining_concerts) ;
101
100
concerts
@@ -158,9 +157,8 @@ fn parse_concert_json(
158
157
. and_then ( |arr| arr[ 0 ] [ "title" ] . as_str ( ) )
159
158
. or ( Some ( "" ) )
160
159
. map ( |s| decode_html_entities ( s) . to_string ( ) ) ;
161
- match ( opt_title, opt_composer) {
162
- ( Some ( title) , Some ( composer) ) => pieces. push ( core:: Piece { title, composer } ) ,
163
- _ => ( ) ,
160
+ if let ( Some ( title) , Some ( composer) ) = ( opt_title, opt_composer) {
161
+ pieces. push ( core:: Piece { title, composer } ) ;
164
162
}
165
163
}
166
164
}
@@ -182,12 +180,11 @@ fn parse_concert_json(
182
180
for credit in credits {
183
181
let opt_artist_name = credit[ "artist" ] [ "title" ] . as_str ( ) . map ( decode_html_entities) ;
184
182
let opt_role = credit[ "role" ] . as_str ( ) . map ( decode_html_entities) ;
185
- match ( opt_artist_name, opt_role) {
186
- ( Some ( artist_name ) , Some ( role ) ) => performers. push ( core:: Performer {
183
+ if let ( Some ( artist_name ) , Some ( role ) ) = ( opt_artist_name, opt_role) {
184
+ performers. push ( core:: Performer {
187
185
name : artist_name. to_string ( ) ,
188
186
instrument : Some ( role. to_string ( ) ) ,
189
- } ) ,
190
- _ => ( ) ,
187
+ } ) ;
191
188
}
192
189
}
193
190
}
0 commit comments