@@ -85,11 +85,9 @@ fn get_manifest_details(paths: &ProjectPaths) -> Result<(PackageConfig, Manifest
8585 let dependency_manager = DependencyManager :: new (
8686 runtime. handle ( ) . clone ( ) ,
8787 package_fetcher,
88- Mode :: Dev ,
89- UseManifest :: Yes ,
9088 cli:: Reporter :: new ( ) ,
91- false ,
92- ) ;
89+ )
90+ . should_use_manifest ( ) ;
9391 let ( _, manifest) = dependency_manager. get_manifest ( & paths, & config, Vec :: new ( ) ) ?;
9492 Ok ( ( config, manifest) )
9593}
@@ -364,14 +362,11 @@ pub fn download<Telem: Telemetry>(
364362 let runtime = tokio:: runtime:: Runtime :: new ( ) . expect ( "Unable to start Tokio async runtime" ) ;
365363 let package_fetcher = PackageFetcher :: new ( runtime. handle ( ) . clone ( ) ) ;
366364
367- let dependency_manager = DependencyManager :: new (
368- runtime. handle ( ) . clone ( ) ,
369- package_fetcher,
370- mode,
371- use_manifest,
372- telemetry,
373- check_major_versions,
374- ) ;
365+ let dependency_manager =
366+ DependencyManager :: new ( runtime. handle ( ) . clone ( ) , package_fetcher, telemetry)
367+ . with_use_manifest ( use_manifest)
368+ . with_mode ( mode)
369+ . with_check_major_versions ( check_major_versions) ;
375370
376371 dependency_manager. download ( paths, new_package, packages_to_update)
377372}
@@ -658,24 +653,37 @@ impl<Telem: Telemetry, P> DependencyManager<Telem, P>
658653where
659654 P : dependency:: PackageFetcher ,
660655{
661- pub fn new (
662- runtime : tokio:: runtime:: Handle ,
663- package_fetcher : P ,
664- mode : Mode ,
665- use_manifest : UseManifest ,
666- telemetry : Telem ,
667- check_major_versions : bool ,
668- ) -> Self {
656+ pub fn new ( runtime : tokio:: runtime:: Handle , package_fetcher : P , telemetry : Telem ) -> Self {
669657 Self {
670658 runtime,
671659 package_fetcher,
672- mode,
673- use_manifest,
660+ mode : Mode :: Dev ,
661+ use_manifest : UseManifest :: No ,
674662 telemetry,
675- check_major_versions,
663+ check_major_versions : false ,
676664 }
677665 }
678666
667+ fn with_use_manifest ( mut self , use_manifest : UseManifest ) -> Self {
668+ self . use_manifest = use_manifest;
669+ self
670+ }
671+
672+ fn with_mode ( mut self , mode : Mode ) -> Self {
673+ self . mode = mode;
674+ self
675+ }
676+
677+ fn with_check_major_versions ( mut self , check_major_versions : bool ) -> Self {
678+ self . check_major_versions = check_major_versions;
679+ self
680+ }
681+
682+ fn should_use_manifest ( mut self ) -> Self {
683+ self . use_manifest = UseManifest :: Yes ;
684+ self
685+ }
686+
679687 fn get_manifest (
680688 & self ,
681689 paths : & ProjectPaths ,
0 commit comments