@@ -1015,11 +1015,9 @@ pub fn downloads(req: &mut Request) -> CargoResult<Response> {
1015
1015
WHERE date > $1
1016
1016
AND version_id = ANY($2)
1017
1017
ORDER BY date ASC" ) ?;
1018
- let mut downloads = Vec :: new ( ) ;
1019
- for row in stmt. query ( & [ & cutoff_date, & ids] ) ?. iter ( ) {
1020
- let download: VersionDownload = Model :: from_row ( & row) ;
1021
- downloads. push ( download. encodable ( ) ) ;
1022
- }
1018
+ let downloads = stmt. query ( & [ & cutoff_date, & ids] ) ?. iter ( ) . map ( |row| {
1019
+ VersionDownload :: from_row ( & row) . encodable ( )
1020
+ } ) . collect :: < Vec < _ > > ( ) ;
1023
1021
1024
1022
let stmt = tx. prepare ( "\
1025
1023
SELECT COALESCE(to_char(DATE(version_downloads.date), 'YYYY-MM-DD'), '') AS date,
@@ -1032,13 +1030,12 @@ pub fn downloads(req: &mut Request) -> CargoResult<Response> {
1032
1030
AND versions.id != ALL($3)
1033
1031
GROUP BY DATE(version_downloads.date)
1034
1032
ORDER BY DATE(version_downloads.date) ASC" ) ?;
1035
- let mut extra = Vec :: new ( ) ;
1036
- for row in stmt. query ( & [ & cutoff_date, & krate. id , & ids] ) ?. iter ( ) {
1037
- extra. push ( ExtraDownload {
1033
+ let extra = stmt. query ( & [ & cutoff_date, & krate. id , & ids] ) ?. iter ( ) . map ( |row| {
1034
+ ExtraDownload {
1038
1035
downloads : row. get ( "downloads" ) ,
1039
1036
date : row. get ( "date" )
1040
- } ) ;
1041
- }
1037
+ }
1038
+ } ) . collect :: < Vec < _ > > ( ) ;
1042
1039
1043
1040
#[ derive( RustcEncodable ) ]
1044
1041
struct ExtraDownload { date : String , downloads : i64 }
0 commit comments