@@ -571,6 +571,7 @@ pub struct Package {
571
571
local : bool ,
572
572
alternative : bool ,
573
573
invalid_index_line : bool ,
574
+ index_line : Option < String > ,
574
575
edition : Option < String > ,
575
576
resolver : Option < String > ,
576
577
proc_macro : bool ,
@@ -1252,6 +1253,7 @@ impl Package {
1252
1253
local : false ,
1253
1254
alternative : false ,
1254
1255
invalid_index_line : false ,
1256
+ index_line : None ,
1255
1257
edition : None ,
1256
1258
resolver : None ,
1257
1259
proc_macro : false ,
@@ -1427,6 +1429,14 @@ impl Package {
1427
1429
self
1428
1430
}
1429
1431
1432
+ /// Override the auto-generated index line
1433
+ ///
1434
+ /// This can give more control over error cases than [`Package::invalid_index_line`]
1435
+ pub fn index_line ( & mut self , line : & str ) -> & mut Package {
1436
+ self . index_line = Some ( line. to_owned ( ) ) ;
1437
+ self
1438
+ }
1439
+
1430
1440
pub fn links ( & mut self , links : & str ) -> & mut Package {
1431
1441
self . links = Some ( links. to_string ( ) ) ;
1432
1442
self
@@ -1496,22 +1506,26 @@ impl Package {
1496
1506
let c = t ! ( fs:: read( & self . archive_dst( ) ) ) ;
1497
1507
cksum ( & c)
1498
1508
} ;
1499
- let name = if self . invalid_index_line {
1500
- serde_json :: json! ( 1 )
1509
+ let line = if let Some ( line ) = self . index_line . clone ( ) {
1510
+ line
1501
1511
} else {
1502
- serde_json:: json!( self . name)
1512
+ let name = if self . invalid_index_line {
1513
+ serde_json:: json!( 1 )
1514
+ } else {
1515
+ serde_json:: json!( self . name)
1516
+ } ;
1517
+ create_index_line (
1518
+ name,
1519
+ & self . vers ,
1520
+ deps,
1521
+ & cksum,
1522
+ self . features . clone ( ) ,
1523
+ self . yanked ,
1524
+ self . links . clone ( ) ,
1525
+ self . rust_version . as_deref ( ) ,
1526
+ self . v ,
1527
+ )
1503
1528
} ;
1504
- let line = create_index_line (
1505
- name,
1506
- & self . vers ,
1507
- deps,
1508
- & cksum,
1509
- self . features . clone ( ) ,
1510
- self . yanked ,
1511
- self . links . clone ( ) ,
1512
- self . rust_version . as_deref ( ) ,
1513
- self . v ,
1514
- ) ;
1515
1529
1516
1530
let registry_path = if self . alternative {
1517
1531
alt_registry_path ( )
0 commit comments