@@ -11,6 +11,7 @@ pub(crate) struct QueuedCrate {
11
11
pub ( crate ) name : String ,
12
12
pub ( crate ) version : String ,
13
13
pub ( crate ) priority : i32 ,
14
+ pub ( crate ) registry : Option < String > ,
14
15
}
15
16
16
17
#[ derive( Debug ) ]
@@ -29,10 +30,16 @@ impl BuildQueue {
29
30
}
30
31
}
31
32
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 < ( ) > {
33
40
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 ] ,
36
43
) ?;
37
44
Ok ( ( ) )
38
45
}
@@ -63,7 +70,7 @@ impl BuildQueue {
63
70
64
71
pub ( crate ) fn queued_crates ( & self ) -> Result < Vec < QueuedCrate > > {
65
72
let query = self . db . get ( ) ?. query (
66
- "SELECT id, name, version, priority
73
+ "SELECT id, name, version, priority, registry
67
74
FROM queue
68
75
WHERE attempt < $1
69
76
ORDER BY priority ASC, attempt ASC, id ASC" ,
@@ -77,6 +84,7 @@ impl BuildQueue {
77
84
name : row. get ( "name" ) ,
78
85
version : row. get ( "version" ) ,
79
86
priority : row. get ( "priority" ) ,
87
+ registry : row. get ( "registry" ) ,
80
88
} )
81
89
. collect ( ) )
82
90
}
@@ -149,7 +157,7 @@ mod tests {
149
157
( "high-priority-baz" , "1.0.0" , -1000 ) ,
150
158
] ;
151
159
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 ) ?;
153
161
}
154
162
155
163
let assert_next = |name| -> Result < ( ) > {
@@ -214,9 +222,9 @@ mod tests {
214
222
let queue = env. build_queue ( ) ;
215
223
216
224
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 ) ?;
218
226
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 ) ?;
220
228
assert_eq ! ( queue. pending_count( ) ?, 2 ) ;
221
229
222
230
queue. process_next_crate ( |krate| {
@@ -235,11 +243,11 @@ mod tests {
235
243
let queue = env. build_queue ( ) ;
236
244
237
245
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 ) ?;
239
247
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 ) ?;
241
249
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 ) ?;
243
251
assert_eq ! ( queue. prioritized_count( ) ?, 2 ) ;
244
252
245
253
queue. process_next_crate ( |krate| {
@@ -262,9 +270,9 @@ mod tests {
262
270
let queue = env. build_queue ( ) ;
263
271
264
272
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 ) ?;
266
274
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 ) ?;
268
276
269
277
for _ in 0 ..MAX_ATTEMPTS {
270
278
assert_eq ! ( queue. failed_count( ) ?, 0 ) ;
@@ -296,7 +304,7 @@ mod tests {
296
304
( "baz" , "1.0.0" , 10 ) ,
297
305
] ;
298
306
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 ) ?;
300
308
}
301
309
302
310
assert_eq ! (
0 commit comments