@@ -26,15 +26,13 @@ use base64::{Engine, engine::general_purpose::STANDARD as b64};
2626use chrono:: { DateTime , Utc } ;
2727use futures_util:: stream:: TryStreamExt ;
2828use itertools:: Itertools ;
29- use semver:: Version ;
3029use serde:: { Deserialize , Serialize } ;
3130use sqlx:: Row ;
3231use std:: {
3332 collections:: { BTreeMap , HashMap , HashSet } ,
3433 str,
3534 sync:: Arc ,
3635} ;
37- use tracing:: warn;
3836use tracing:: { trace, warn} ;
3937use url:: form_urlencoded;
4038
@@ -120,28 +118,23 @@ pub(crate) async fn get_releases(
120118 }
121119 ) ;
122120
123- sqlx:: query ( query. as_str ( ) )
121+ Ok ( sqlx:: query ( query. as_str ( ) )
124122 . bind ( limit)
125123 . bind ( offset)
126124 . bind ( filter_failed)
127125 . fetch ( conn)
128- . err_into :: < anyhow:: Error > ( )
129- . and_then ( |row| async move {
130- let version: semver:: Version = row. get :: < String , _ > ( 1 ) . parse ( ) ?;
131-
132- Ok ( Release {
133- name : row. get ( 0 ) ,
134- version,
135- description : row. get ( 2 ) ,
136- target_name : row. get ( 3 ) ,
137- rustdoc_status : row. get :: < Option < bool > , _ > ( 4 ) . unwrap_or ( false ) ,
138- build_time : row. get ( 5 ) ,
139- stars : row. get :: < Option < i32 > , _ > ( 6 ) . unwrap_or ( 0 ) ,
140- has_unyanked_releases : None ,
141- } )
126+ . map_ok ( |row| Release {
127+ name : row. get ( 0 ) ,
128+ version : row. get ( 1 ) ,
129+ description : row. get ( 2 ) ,
130+ target_name : row. get ( 3 ) ,
131+ rustdoc_status : row. get :: < Option < bool > , _ > ( 4 ) . unwrap_or ( false ) ,
132+ build_time : row. get ( 5 ) ,
133+ stars : row. get :: < Option < i32 > , _ > ( 6 ) . unwrap_or ( 0 ) ,
134+ has_unyanked_releases : None ,
142135 } )
143136 . try_collect ( )
144- . await
137+ . await ? )
145138}
146139
147140#[ derive( Debug , Clone , PartialEq , Eq ) ]
@@ -211,22 +204,20 @@ async fn get_search_results(
211204 & names[ ..] ,
212205 )
213206 . fetch ( & mut * conn)
214- . err_into :: < anyhow:: Error > ( )
215- . and_then ( |row| async move {
216- let version: semver:: Version = row. version . parse ( ) ?;
217- Ok ( (
207+ . map_ok ( |row| {
208+ (
218209 row. name . clone ( ) ,
219210 Release {
220211 name : row. name ,
221- version,
212+ version : row . version ,
222213 description : row. description ,
223214 build_time : row. last_build_time ,
224215 target_name : row. target_name ,
225216 rustdoc_status : row. rustdoc_status . unwrap_or ( false ) ,
226217 stars : row. stars . unwrap_or ( 0 ) ,
227218 has_unyanked_releases : row. has_unyanked_releases ,
228219 } ,
229- ) )
220+ )
230221 } )
231222 . try_collect ( )
232223 . await ?;
@@ -765,14 +756,7 @@ pub(crate) async fn build_queue_handler(
765756 . fetch_all ( & mut * conn)
766757 . await ?
767758 . into_iter ( )
768- . map ( |rec| {
769- (
770- rec. name ,
771- rec. version
772- . parse ( )
773- . expect ( "all versions in the db are valid" ) ,
774- )
775- } )
759+ . map ( |rec| ( rec. name , rec. version ) )
776760 . collect ( ) ;
777761
778762 let mut rebuild_queue = Vec :: new ( ) ;
@@ -782,11 +766,8 @@ pub(crate) async fn build_queue_handler(
782766 . into_iter ( )
783767 . filter ( |krate| {
784768 !in_progress_builds. iter ( ) . any ( |( name, version) | {
785- // temporary, until I migrated the other version occurences to semver::Version
786- // We know that in the DB we only have semver
787- let krate_version: Version = krate. version . parse ( ) . unwrap ( ) ;
788769 // use `.any` instead of `.contains` to avoid cloning name& version for the match
789- * name == krate. name && * version == krate_version
770+ * name == krate. name && * version == krate . version
790771 } )
791772 } )
792773 . collect_vec ( ) ;
0 commit comments