@@ -11,6 +11,7 @@ pub(crate) struct QueuedCrate {
1111 pub ( crate ) name : String ,
1212 pub ( crate ) version : String ,
1313 pub ( crate ) priority : i32 ,
14+ pub ( crate ) registry : Option < String > ,
1415}
1516
1617#[ derive( Debug ) ]
@@ -29,10 +30,16 @@ impl BuildQueue {
2930 }
3031 }
3132
32- pub fn add_crate ( & self , name : & str , version : & str , priority : i32 ) -> Result < ( ) > {
33+ pub fn add_crate (
34+ & self ,
35+ name : & str ,
36+ version : & str ,
37+ priority : i32 ,
38+ registry : Option < & str > ,
39+ ) -> Result < ( ) > {
3340 self . db . get ( ) ?. execute (
34- "INSERT INTO queue (name, version, priority) VALUES ($1, $2, $3);" ,
35- & [ & name, & version, & priority] ,
41+ "INSERT INTO queue (name, version, priority, registry ) VALUES ($1, $2, $3, $4 );" ,
42+ & [ & name, & version, & priority, & registry ] ,
3643 ) ?;
3744 Ok ( ( ) )
3845 }
@@ -63,7 +70,7 @@ impl BuildQueue {
6370
6471 pub ( crate ) fn queued_crates ( & self ) -> Result < Vec < QueuedCrate > > {
6572 let query = self . db . get ( ) ?. query (
66- "SELECT id, name, version, priority
73+ "SELECT id, name, version, priority, registry
6774 FROM queue
6875 WHERE attempt < $1
6976 ORDER BY priority ASC, attempt ASC, id ASC" ,
@@ -77,6 +84,7 @@ impl BuildQueue {
7784 name : row. get ( "name" ) ,
7885 version : row. get ( "version" ) ,
7986 priority : row. get ( "priority" ) ,
87+ registry : row. get ( "registry" ) ,
8088 } )
8189 . collect ( ) )
8290 }
@@ -149,7 +157,7 @@ mod tests {
149157 ( "high-priority-baz" , "1.0.0" , -1000 ) ,
150158 ] ;
151159 for krate in & test_crates {
152- queue. add_crate ( krate. 0 , krate. 1 , krate. 2 ) ?;
160+ queue. add_crate ( krate. 0 , krate. 1 , krate. 2 , None ) ?;
153161 }
154162
155163 let assert_next = |name| -> Result < ( ) > {
@@ -214,9 +222,9 @@ mod tests {
214222 let queue = env. build_queue ( ) ;
215223
216224 assert_eq ! ( queue. pending_count( ) ?, 0 ) ;
217- queue. add_crate ( "foo" , "1.0.0" , 0 ) ?;
225+ queue. add_crate ( "foo" , "1.0.0" , 0 , None ) ?;
218226 assert_eq ! ( queue. pending_count( ) ?, 1 ) ;
219- queue. add_crate ( "bar" , "1.0.0" , 0 ) ?;
227+ queue. add_crate ( "bar" , "1.0.0" , 0 , None ) ?;
220228 assert_eq ! ( queue. pending_count( ) ?, 2 ) ;
221229
222230 queue. process_next_crate ( |krate| {
@@ -235,11 +243,11 @@ mod tests {
235243 let queue = env. build_queue ( ) ;
236244
237245 assert_eq ! ( queue. prioritized_count( ) ?, 0 ) ;
238- queue. add_crate ( "foo" , "1.0.0" , 0 ) ?;
246+ queue. add_crate ( "foo" , "1.0.0" , 0 , None ) ?;
239247 assert_eq ! ( queue. prioritized_count( ) ?, 1 ) ;
240- queue. add_crate ( "bar" , "1.0.0" , -100 ) ?;
248+ queue. add_crate ( "bar" , "1.0.0" , -100 , None ) ?;
241249 assert_eq ! ( queue. prioritized_count( ) ?, 2 ) ;
242- queue. add_crate ( "baz" , "1.0.0" , 100 ) ?;
250+ queue. add_crate ( "baz" , "1.0.0" , 100 , None ) ?;
243251 assert_eq ! ( queue. prioritized_count( ) ?, 2 ) ;
244252
245253 queue. process_next_crate ( |krate| {
@@ -262,9 +270,9 @@ mod tests {
262270 let queue = env. build_queue ( ) ;
263271
264272 assert_eq ! ( queue. failed_count( ) ?, 0 ) ;
265- queue. add_crate ( "foo" , "1.0.0" , -100 ) ?;
273+ queue. add_crate ( "foo" , "1.0.0" , -100 , None ) ?;
266274 assert_eq ! ( queue. failed_count( ) ?, 0 ) ;
267- queue. add_crate ( "bar" , "1.0.0" , 0 ) ?;
275+ queue. add_crate ( "bar" , "1.0.0" , 0 , None ) ?;
268276
269277 for _ in 0 ..MAX_ATTEMPTS {
270278 assert_eq ! ( queue. failed_count( ) ?, 0 ) ;
@@ -296,7 +304,7 @@ mod tests {
296304 ( "baz" , "1.0.0" , 10 ) ,
297305 ] ;
298306 for krate in & test_crates {
299- queue. add_crate ( krate. 0 , krate. 1 , krate. 2 ) ?;
307+ queue. add_crate ( krate. 0 , krate. 1 , krate. 2 , None ) ?;
300308 }
301309
302310 assert_eq ! (
0 commit comments