From a62b1ada499df523931f06ccff7f0d5f62b5841f Mon Sep 17 00:00:00 2001 From: hi-rustin Date: Sun, 9 Oct 2022 10:45:04 +0800 Subject: [PATCH] Rename infer_package to infer_package_for_git_source Signed-off-by: hi-rustin --- src/cargo/ops/cargo_add/mod.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/cargo/ops/cargo_add/mod.rs b/src/cargo/ops/cargo_add/mod.rs index f0606e0d5701..7e1f8bdda96c 100644 --- a/src/cargo/ops/cargo_add/mod.rs +++ b/src/cargo/ops/cargo_add/mod.rs @@ -289,7 +289,7 @@ fn resolve_dependency( } else { let mut source = crate::sources::GitSource::new(src.source_id()?, config)?; let packages = source.read_packages()?; - let package = infer_package(packages, &src, true)?; + let package = infer_package_for_git_source(packages, &src)?; Dependency::from(package.summary()) }; selected @@ -313,8 +313,11 @@ fn resolve_dependency( selected } else { let source = crate::sources::PathSource::new(&path, src.source_id()?, config); - let packages = source.read_packages()?; - let package = infer_package(packages, &src, false)?; + let mut packages = source.read_packages()?; + if packages.len() == 0 { + anyhow::bail!("no packages found at `{src}`"); + } + let package = packages.pop().expect("at least one package"); Dependency::from(package.summary()) }; selected @@ -599,10 +602,9 @@ fn select_package( } } -fn infer_package( +fn infer_package_for_git_source( mut packages: Vec, src: &dyn std::fmt::Display, - is_git_source: bool, ) -> CargoResult { let package = match packages.len() { 0 => { @@ -627,11 +629,7 @@ fn infer_package( }) .into_iter() .format("\n "), - if is_git_source { - format!("\nTo disambiguate, run `cargo add --git {src} `") - } else { - "".to_owned() - } + format!("\nTo disambiguate, run `cargo add --git {src} `") ); } };