1
1
// SPDX-License-Identifier: MPL-2.0
2
2
3
3
use pubgrub:: {
4
- resolve , DefaultStringReporter , OfflineDependencyProvider , PubGrubError , Ranges , Reporter ,
4
+ DefaultStringReporter , OfflineDependencyProvider , PubGrubError , Ranges , Reporter ,
5
5
SemanticVersion ,
6
6
} ;
7
7
@@ -10,15 +10,16 @@ type SemVS = Ranges<SemanticVersion>;
10
10
// https://github.com/dart-lang/pub/blob/master/doc/solver.md#branching-error-reporting
11
11
fn main ( ) {
12
12
let mut dependency_provider = OfflineDependencyProvider :: < & str , SemVS > :: new ( ) ;
13
+
13
14
#[ rustfmt:: skip]
14
15
// root 1.0.0 depends on foo ^1.0.0
15
- dependency_provider. add_dependencies (
16
+ dependency_provider. add_dependencies (
16
17
"root" , ( 1 , 0 , 0 ) ,
17
18
[ ( "foo" , Ranges :: from_range_bounds ( ( 1 , 0 , 0 ) ..( 2 , 0 , 0 ) ) ) ] ,
18
19
) ;
19
20
#[ rustfmt:: skip]
20
21
// foo 1.0.0 depends on a ^1.0.0 and b ^1.0.0
21
- dependency_provider. add_dependencies (
22
+ dependency_provider. add_dependencies (
22
23
"foo" , ( 1 , 0 , 0 ) ,
23
24
[
24
25
( "a" , Ranges :: from_range_bounds ( ( 1 , 0 , 0 ) ..( 2 , 0 , 0 ) ) ) ,
@@ -27,7 +28,7 @@ fn main() {
27
28
) ;
28
29
#[ rustfmt:: skip]
29
30
// foo 1.1.0 depends on x ^1.0.0 and y ^1.0.0
30
- dependency_provider. add_dependencies (
31
+ dependency_provider. add_dependencies (
31
32
"foo" , ( 1 , 1 , 0 ) ,
32
33
[
33
34
( "x" , Ranges :: from_range_bounds ( ( 1 , 0 , 0 ) ..( 2 , 0 , 0 ) ) ) ,
@@ -36,7 +37,7 @@ fn main() {
36
37
) ;
37
38
#[ rustfmt:: skip]
38
39
// a 1.0.0 depends on b ^2.0.0
39
- dependency_provider. add_dependencies (
40
+ dependency_provider. add_dependencies (
40
41
"a" , ( 1 , 0 , 0 ) ,
41
42
[ ( "b" , Ranges :: from_range_bounds ( ( 2 , 0 , 0 ) ..( 3 , 0 , 0 ) ) ) ] ,
42
43
) ;
@@ -45,7 +46,7 @@ fn main() {
45
46
dependency_provider. add_dependencies ( "b" , ( 2 , 0 , 0 ) , [ ] ) ;
46
47
#[ rustfmt:: skip]
47
48
// x 1.0.0 depends on y ^2.0.0.
48
- dependency_provider. add_dependencies (
49
+ dependency_provider. add_dependencies (
49
50
"x" , ( 1 , 0 , 0 ) ,
50
51
[ ( "y" , Ranges :: from_range_bounds ( ( 2 , 0 , 0 ) ..( 3 , 0 , 0 ) ) ) ] ,
51
52
) ;
@@ -54,11 +55,14 @@ fn main() {
54
55
dependency_provider. add_dependencies ( "y" , ( 2 , 0 , 0 ) , [ ] ) ;
55
56
56
57
// Run the algorithm.
57
- match resolve ( & dependency_provider , "root" , ( 1 , 0 , 0 ) ) {
58
+ match dependency_provider . resolve ( "root" , ( 1 , 0 , 0 ) ) {
58
59
Ok ( sol) => println ! ( "{:?}" , sol) ,
59
- Err ( PubGrubError :: NoSolution ( mut derivation_tree) ) => {
60
- derivation_tree. collapse_no_versions ( ) ;
61
- eprintln ! ( "{}" , DefaultStringReporter :: report( & derivation_tree) ) ;
60
+ Err ( PubGrubError :: NoSolution ( mut error) ) => {
61
+ error. derivation_tree . collapse_no_versions ( ) ;
62
+ eprintln ! (
63
+ "{}" ,
64
+ DefaultStringReporter :: report( & error, & dependency_provider)
65
+ ) ;
62
66
std:: process:: exit ( 1 ) ;
63
67
}
64
68
Err ( err) => panic ! ( "{:?}" , err) ,
0 commit comments