@@ -7,6 +7,7 @@ use serde::{de, ser};
7
7
use url:: Url ;
8
8
9
9
use crate :: core:: PackageId ;
10
+ use crate :: core:: SourceKind ;
10
11
use crate :: util:: edit_distance;
11
12
use crate :: util:: errors:: CargoResult ;
12
13
use crate :: util:: { validate_package_name, IntoUrl } ;
@@ -26,6 +27,7 @@ pub struct PackageIdSpec {
26
27
name : String ,
27
28
version : Option < PartialVersion > ,
28
29
url : Option < Url > ,
30
+ kind : Option < SourceKind > ,
29
31
}
30
32
31
33
impl PackageIdSpec {
@@ -78,6 +80,7 @@ impl PackageIdSpec {
78
80
name : String :: from ( name) ,
79
81
version,
80
82
url : None ,
83
+ kind : None ,
81
84
} )
82
85
}
83
86
@@ -101,6 +104,7 @@ impl PackageIdSpec {
101
104
name : String :: from ( package_id. name ( ) . as_str ( ) ) ,
102
105
version : Some ( package_id. version ( ) . clone ( ) . into ( ) ) ,
103
106
url : Some ( package_id. source_id ( ) . url ( ) . clone ( ) ) ,
107
+ kind : None ,
104
108
}
105
109
}
106
110
@@ -144,6 +148,7 @@ impl PackageIdSpec {
144
148
name,
145
149
version,
146
150
url : Some ( url) ,
151
+ kind : None ,
147
152
} )
148
153
}
149
154
@@ -216,6 +221,7 @@ impl PackageIdSpec {
216
221
name : self . name . clone ( ) ,
217
222
version : self . version . clone ( ) ,
218
223
url : None ,
224
+ kind : None ,
219
225
} ,
220
226
& mut suggestion,
221
227
) ;
@@ -226,6 +232,7 @@ impl PackageIdSpec {
226
232
name : self . name . clone ( ) ,
227
233
version : None ,
228
234
url : None ,
235
+ kind : None ,
229
236
} ,
230
237
& mut suggestion,
231
238
) ;
@@ -346,6 +353,7 @@ mod tests {
346
353
name : String :: from ( "foo" ) ,
347
354
version : None ,
348
355
url : Some ( Url :: parse ( "https://crates.io/foo" ) . unwrap ( ) ) ,
356
+ kind : None ,
349
357
} ,
350
358
"https://crates.io/foo" ,
351
359
) ;
@@ -355,6 +363,7 @@ mod tests {
355
363
name : String :: from ( "foo" ) ,
356
364
version : Some ( "1.2.3" . parse ( ) . unwrap ( ) ) ,
357
365
url : Some ( Url :: parse ( "https://crates.io/foo" ) . unwrap ( ) ) ,
366
+ kind : None ,
358
367
} ,
359
368
"https://crates.io/foo#1.2.3" ,
360
369
) ;
@@ -364,6 +373,7 @@ mod tests {
364
373
name : String :: from ( "foo" ) ,
365
374
version : Some ( "1.2" . parse ( ) . unwrap ( ) ) ,
366
375
url : Some ( Url :: parse ( "https://crates.io/foo" ) . unwrap ( ) ) ,
376
+ kind : None ,
367
377
} ,
368
378
"https://crates.io/foo#1.2" ,
369
379
) ;
@@ -373,6 +383,7 @@ mod tests {
373
383
name : String :: from ( "bar" ) ,
374
384
version : Some ( "1.2.3" . parse ( ) . unwrap ( ) ) ,
375
385
url : Some ( Url :: parse ( "https://crates.io/foo" ) . unwrap ( ) ) ,
386
+ kind : None ,
376
387
} ,
377
388
"https://crates.io/foo#[email protected] " ,
378
389
) ;
@@ -382,6 +393,7 @@ mod tests {
382
393
name : String :: from ( "bar" ) ,
383
394
version : Some ( "1.2.3" . parse ( ) . unwrap ( ) ) ,
384
395
url : Some ( Url :: parse ( "https://crates.io/foo" ) . unwrap ( ) ) ,
396
+ kind : None ,
385
397
} ,
386
398
"https://crates.io/foo#[email protected] " ,
387
399
) ;
@@ -391,6 +403,7 @@ mod tests {
391
403
name : String :: from ( "bar" ) ,
392
404
version : Some ( "1.2" . parse ( ) . unwrap ( ) ) ,
393
405
url : Some ( Url :: parse ( "https://crates.io/foo" ) . unwrap ( ) ) ,
406
+ kind : None ,
394
407
} ,
395
408
"https://crates.io/foo#[email protected] " ,
396
409
) ;
@@ -400,6 +413,7 @@ mod tests {
400
413
name : String :: from ( "foo" ) ,
401
414
version : None ,
402
415
url : None ,
416
+ kind : None ,
403
417
} ,
404
418
"foo" ,
405
419
) ;
@@ -409,6 +423,7 @@ mod tests {
409
423
name : String :: from ( "foo" ) ,
410
424
version : Some ( "1.2.3" . parse ( ) . unwrap ( ) ) ,
411
425
url : None ,
426
+ kind : None ,
412
427
} ,
413
428
414
429
) ;
@@ -418,6 +433,7 @@ mod tests {
418
433
name : String :: from ( "foo" ) ,
419
434
version : Some ( "1.2.3" . parse ( ) . unwrap ( ) ) ,
420
435
url : None ,
436
+ kind : None ,
421
437
} ,
422
438
423
439
) ;
@@ -427,6 +443,7 @@ mod tests {
427
443
name : String :: from ( "foo" ) ,
428
444
version : Some ( "1.2" . parse ( ) . unwrap ( ) ) ,
429
445
url : None ,
446
+ kind : None ,
430
447
} ,
431
448
432
449
) ;
@@ -438,6 +455,7 @@ mod tests {
438
455
name : String :: from ( "regex" ) ,
439
456
version : None ,
440
457
url : None ,
458
+ kind : None ,
441
459
} ,
442
460
"regex" ,
443
461
) ;
@@ -447,6 +465,7 @@ mod tests {
447
465
name : String :: from ( "regex" ) ,
448
466
version : Some ( "1.4" . parse ( ) . unwrap ( ) ) ,
449
467
url : None ,
468
+ kind : None ,
450
469
} ,
451
470
452
471
) ;
@@ -456,6 +475,7 @@ mod tests {
456
475
name : String :: from ( "regex" ) ,
457
476
version : Some ( "1.4.3" . parse ( ) . unwrap ( ) ) ,
458
477
url : None ,
478
+ kind : None ,
459
479
} ,
460
480
461
481
) ;
@@ -465,6 +485,7 @@ mod tests {
465
485
name : String :: from ( "regex" ) ,
466
486
version : None ,
467
487
url : Some ( Url :: parse ( "https://github.com/rust-lang/crates.io-index" ) . unwrap ( ) ) ,
488
+ kind : None ,
468
489
} ,
469
490
"https://github.com/rust-lang/crates.io-index#regex" ,
470
491
) ;
@@ -474,6 +495,7 @@ mod tests {
474
495
name : String :: from ( "regex" ) ,
475
496
version : Some ( "1.4.3" . parse ( ) . unwrap ( ) ) ,
476
497
url : Some ( Url :: parse ( "https://github.com/rust-lang/crates.io-index" ) . unwrap ( ) ) ,
498
+ kind : None ,
477
499
} ,
478
500
"https://github.com/rust-lang/crates.io-index#[email protected] " ,
479
501
) ;
@@ -483,6 +505,7 @@ mod tests {
483
505
name : String :: from ( "cargo" ) ,
484
506
version : Some ( "0.52.0" . parse ( ) . unwrap ( ) ) ,
485
507
url : Some ( Url :: parse ( "https://github.com/rust-lang/cargo" ) . unwrap ( ) ) ,
508
+ kind : None ,
486
509
} ,
487
510
"https://github.com/rust-lang/cargo#0.52.0" ,
488
511
) ;
@@ -492,6 +515,7 @@ mod tests {
492
515
name : String :: from ( "cargo-platform" ) ,
493
516
version : Some ( "0.1.2" . parse ( ) . unwrap ( ) ) ,
494
517
url : Some ( Url :: parse ( "https://github.com/rust-lang/cargo" ) . unwrap ( ) ) ,
518
+ kind : None ,
495
519
} ,
496
520
"https://github.com/rust-lang/cargo#[email protected] " ,
497
521
) ;
@@ -501,6 +525,7 @@ mod tests {
501
525
name : String :: from ( "regex" ) ,
502
526
version : Some ( "1.4.3" . parse ( ) . unwrap ( ) ) ,
503
527
url : Some ( Url :: parse ( "ssh://[email protected] /rust-lang/regex.git" ) . unwrap ( ) ) ,
528
+ kind : None ,
504
529
} ,
505
530
506
531
) ;
@@ -510,6 +535,7 @@ mod tests {
510
535
name : String :: from ( "foo" ) ,
511
536
version : None ,
512
537
url : Some ( Url :: parse ( "file:///path/to/my/project/foo" ) . unwrap ( ) ) ,
538
+ kind : None ,
513
539
} ,
514
540
"file:///path/to/my/project/foo" ,
515
541
) ;
@@ -519,6 +545,7 @@ mod tests {
519
545
name : String :: from ( "foo" ) ,
520
546
version : Some ( "1.1.8" . parse ( ) . unwrap ( ) ) ,
521
547
url : Some ( Url :: parse ( "file:///path/to/my/project/foo" ) . unwrap ( ) ) ,
548
+ kind : None ,
522
549
} ,
523
550
"file:///path/to/my/project/foo#1.1.8" ,
524
551
) ;
0 commit comments