mirror of
https://github.com/rust-lang/cargo
synced 2024-08-28 03:39:31 +00:00
refactor(schema): Decouple forms of name validation
This commit is contained in:
parent
b8a684674a
commit
b321285501
|
@ -1209,7 +1209,7 @@ str_newtype!(PackageName);
|
|||
impl<T: AsRef<str>> PackageName<T> {
|
||||
/// Validated package name
|
||||
pub fn new(name: T) -> Result<Self, NameValidationError> {
|
||||
restricted_names::validate_package_name(name.as_ref(), "package name")?;
|
||||
restricted_names::validate_package_name(name.as_ref())?;
|
||||
Ok(Self(name))
|
||||
}
|
||||
}
|
||||
|
@ -1231,7 +1231,7 @@ str_newtype!(RegistryName);
|
|||
impl<T: AsRef<str>> RegistryName<T> {
|
||||
/// Validated registry name
|
||||
pub fn new(name: T) -> Result<Self, NameValidationError> {
|
||||
restricted_names::validate_package_name(name.as_ref(), "registry name")?;
|
||||
restricted_names::validate_registry_name(name.as_ref())?;
|
||||
Ok(Self(name))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,13 +33,15 @@ enum ErrorKind {
|
|||
FeatureNameStartsWithDepColon(String),
|
||||
}
|
||||
|
||||
/// Check the base requirements for a package name.
|
||||
///
|
||||
/// This can be used for other things than package names, to enforce some
|
||||
/// level of sanity. Note that package names have other restrictions
|
||||
/// elsewhere. `cargo new` has a few restrictions, such as checking for
|
||||
/// reserved names. crates.io has even more restrictions.
|
||||
pub(crate) fn validate_package_name(name: &str, what: &'static str) -> Result<()> {
|
||||
pub(crate) fn validate_package_name(name: &str) -> Result<()> {
|
||||
validate_name(name, "package name")
|
||||
}
|
||||
|
||||
pub(crate) fn validate_registry_name(name: &str) -> Result<()> {
|
||||
validate_name(name, "registry name")
|
||||
}
|
||||
|
||||
pub(crate) fn validate_name(name: &str, what: &'static str) -> Result<()> {
|
||||
if name.is_empty() {
|
||||
return Err(ErrorKind::Empty(what).into());
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue