11// SPDX-License-Identifier: MPL-2.0
22
33use pubgrub:: {
4- resolve , DefaultStringReporter , OfflineDependencyProvider , PubGrubError , Ranges , Reporter ,
4+ DefaultStringReporter , OfflineDependencyProvider , PubGrubError , Ranges , Reporter ,
55 SemanticVersion ,
66} ;
77
@@ -10,15 +10,16 @@ type SemVS = Ranges<SemanticVersion>;
1010// https://github.com/dart-lang/pub/blob/master/doc/solver.md#branching-error-reporting
1111fn main ( ) {
1212 let mut dependency_provider = OfflineDependencyProvider :: < & str , SemVS > :: new ( ) ;
13+
1314 #[ rustfmt:: skip]
1415 // root 1.0.0 depends on foo ^1.0.0
15- dependency_provider. add_dependencies (
16+ dependency_provider. add_dependencies (
1617 "root" , ( 1 , 0 , 0 ) ,
1718 [ ( "foo" , Ranges :: from_range_bounds ( ( 1 , 0 , 0 ) ..( 2 , 0 , 0 ) ) ) ] ,
1819 ) ;
1920 #[ rustfmt:: skip]
2021 // 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 (
2223 "foo" , ( 1 , 0 , 0 ) ,
2324 [
2425 ( "a" , Ranges :: from_range_bounds ( ( 1 , 0 , 0 ) ..( 2 , 0 , 0 ) ) ) ,
@@ -27,7 +28,7 @@ fn main() {
2728 ) ;
2829 #[ rustfmt:: skip]
2930 // 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 (
3132 "foo" , ( 1 , 1 , 0 ) ,
3233 [
3334 ( "x" , Ranges :: from_range_bounds ( ( 1 , 0 , 0 ) ..( 2 , 0 , 0 ) ) ) ,
@@ -36,7 +37,7 @@ fn main() {
3637 ) ;
3738 #[ rustfmt:: skip]
3839 // a 1.0.0 depends on b ^2.0.0
39- dependency_provider. add_dependencies (
40+ dependency_provider. add_dependencies (
4041 "a" , ( 1 , 0 , 0 ) ,
4142 [ ( "b" , Ranges :: from_range_bounds ( ( 2 , 0 , 0 ) ..( 3 , 0 , 0 ) ) ) ] ,
4243 ) ;
@@ -45,7 +46,7 @@ fn main() {
4546 dependency_provider. add_dependencies ( "b" , ( 2 , 0 , 0 ) , [ ] ) ;
4647 #[ rustfmt:: skip]
4748 // x 1.0.0 depends on y ^2.0.0.
48- dependency_provider. add_dependencies (
49+ dependency_provider. add_dependencies (
4950 "x" , ( 1 , 0 , 0 ) ,
5051 [ ( "y" , Ranges :: from_range_bounds ( ( 2 , 0 , 0 ) ..( 3 , 0 , 0 ) ) ) ] ,
5152 ) ;
@@ -54,11 +55,14 @@ fn main() {
5455 dependency_provider. add_dependencies ( "y" , ( 2 , 0 , 0 ) , [ ] ) ;
5556
5657 // Run the algorithm.
57- match resolve ( & dependency_provider , "root" , ( 1 , 0 , 0 ) ) {
58+ match dependency_provider . resolve ( "root" , ( 1 , 0 , 0 ) ) {
5859 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+ ) ;
6266 std:: process:: exit ( 1 ) ;
6367 }
6468 Err ( err) => panic ! ( "{:?}" , err) ,
0 commit comments