Skip to content

Commit

Permalink
Reuse the error message
Browse files Browse the repository at this point in the history
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
  • Loading branch information
Rustin170506 committed Nov 14, 2023
1 parent a3a5394 commit 5f415c2
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 18 deletions.
7 changes: 1 addition & 6 deletions src/controllers/krate/publish.rs
Original file line number Diff line number Diff line change
Expand Up @@ -618,12 +618,7 @@ pub fn validate_dependency(dep: &EncodableCrateDependency) -> AppResult<()> {

if let Some(toml_name) = &dep.explicit_name_in_toml {
if !Crate::valid_dependency_name(toml_name) {
return Err(cargo_err(&format_args!(
"\"{toml_name}\" is an invalid dependency name (dependency \
names must start with a letter or underscore, contain only \
letters, numbers, hyphens, or underscores and have at most \
{MAX_NAME_LENGTH} characters)"
)));
return Err(cargo_err(&Crate::invalid_dependency_name_msg(toml_name)));
}
}

Expand Down
23 changes: 11 additions & 12 deletions src/models/krate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,15 @@ impl Crate {
.unwrap_or(false)
}

pub fn invalid_dependency_name_msg(dep: &str) -> String {
format!(
"\"{dep}\" is an invalid dependency name (dependency \
names must start with a letter or underscore, contain only \
letters, numbers, hyphens, or underscores and have at most \
{MAX_NAME_LENGTH} characters)"
)
}

/// Validates the THIS parts of `features = ["THIS", "and/THIS", "dep:THIS", "dep?/THIS"]`.
/// 1. The name must be non-empty.
/// 2. The first character must be a Unicode XID start character, `_`, or a digit.
Expand Down Expand Up @@ -262,22 +271,12 @@ impl Crate {
if let Some((dep, dep_feat)) = name.split_once('/') {
let dep = dep.strip_suffix('?').unwrap_or(dep);
if !Crate::valid_dependency_name(dep) {
return Err(cargo_err(&format_args!(
"\"{dep}\" is an invalid dependency name (dependency \
names must start with a letter or underscore, contain only \
letters, numbers, hyphens, or underscores and have at most \
{MAX_NAME_LENGTH} characters)"
)));
return Err(cargo_err(&Crate::invalid_dependency_name_msg(dep)));
}
Crate::valid_feature_name(dep_feat)
} else if let Some((_, dep)) = name.split_once("dep:") {
if !Crate::valid_dependency_name(dep) {
return Err(cargo_err(&format_args!(
"\"{dep}\" is an invalid dependency name (dependency \
names must start with a letter or underscore, contain only \
letters, numbers, hyphens, or underscores and have at most \
{MAX_NAME_LENGTH} characters)"
)));
return Err(cargo_err(&Crate::invalid_dependency_name_msg(dep)));
}
return Ok(());
} else {
Expand Down

0 comments on commit 5f415c2

Please sign in to comment.