@@ -63,6 +63,7 @@ pub struct Release {
63
63
pub version : String ,
64
64
pub build_status : bool ,
65
65
pub yanked : bool ,
66
+ pub is_library : bool ,
66
67
}
67
68
68
69
impl CrateDetails {
@@ -243,15 +244,23 @@ impl CrateDetails {
243
244
fn map_to_release ( conn : & Connection , crate_id : i32 , version : String ) -> Release {
244
245
let rows = conn
245
246
. query (
246
- "SELECT build_status, yanked
247
+ "SELECT build_status,
248
+ yanked,
249
+ is_library
247
250
FROM releases
248
251
WHERE releases.crate_id = $1 and releases.version = $2;" ,
249
252
& [ & crate_id, & version] ,
250
253
)
251
254
. unwrap ( ) ;
252
255
253
- let ( build_status, yanked) = if !rows. is_empty ( ) {
254
- ( rows. get ( 0 ) . get ( 0 ) , rows. get ( 0 ) . get ( 1 ) )
256
+ let ( build_status, yanked, is_library) = if !rows. is_empty ( ) {
257
+ let row = rows. get ( 0 ) ;
258
+
259
+ (
260
+ row. get ( "build_status" ) ,
261
+ row. get ( "yanked" ) ,
262
+ row. get ( "is_library" ) ,
263
+ )
255
264
} else {
256
265
Default :: default ( )
257
266
} ;
@@ -260,6 +269,7 @@ fn map_to_release(conn: &Connection, crate_id: i32, version: String) -> Release
260
269
version,
261
270
build_status,
262
271
yanked,
272
+ is_library,
263
273
}
264
274
}
265
275
@@ -438,6 +448,12 @@ mod tests {
438
448
. name ( "foo" )
439
449
. version ( "0.2.0-alpha" )
440
450
. create ( ) ?;
451
+ db. fake_release ( )
452
+ . name ( "foo" )
453
+ . version ( "0.0.1" )
454
+ . build_result_successful ( false )
455
+ . binary ( true )
456
+ . create ( ) ?;
441
457
442
458
let details = CrateDetails :: new ( & db. conn ( ) , "foo" , "0.2.0" ) . unwrap ( ) ;
443
459
assert_eq ! (
@@ -446,37 +462,50 @@ mod tests {
446
462
Release {
447
463
version: "1.0.0" . to_string( ) ,
448
464
build_status: true ,
449
- yanked: false
465
+ yanked: false ,
466
+ is_library: true ,
450
467
} ,
451
468
Release {
452
469
version: "0.12.0" . to_string( ) ,
453
470
build_status: true ,
454
- yanked: false
471
+ yanked: false ,
472
+ is_library: true ,
455
473
} ,
456
474
Release {
457
475
version: "0.3.0" . to_string( ) ,
458
476
build_status: false ,
459
- yanked: false
477
+ yanked: false ,
478
+ is_library: true ,
460
479
} ,
461
480
Release {
462
481
version: "0.2.0" . to_string( ) ,
463
482
build_status: true ,
464
- yanked: true
483
+ yanked: true ,
484
+ is_library: true ,
465
485
} ,
466
486
Release {
467
487
version: "0.2.0-alpha" . to_string( ) ,
468
488
build_status: true ,
469
- yanked: false
489
+ yanked: false ,
490
+ is_library: true ,
470
491
} ,
471
492
Release {
472
493
version: "0.1.1" . to_string( ) ,
473
494
build_status: true ,
474
- yanked: false
495
+ yanked: false ,
496
+ is_library: true ,
475
497
} ,
476
498
Release {
477
499
version: "0.1.0" . to_string( ) ,
478
500
build_status: true ,
479
- yanked: false
501
+ yanked: false ,
502
+ is_library: true ,
503
+ } ,
504
+ Release {
505
+ version: "0.0.1" . to_string( ) ,
506
+ build_status: false ,
507
+ yanked: false ,
508
+ is_library: false ,
480
509
} ,
481
510
]
482
511
) ;
0 commit comments