mirror of
https://github.com/rust-lang/cargo
synced 2024-09-13 21:11:44 +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> {
|
impl<T: AsRef<str>> PackageName<T> {
|
||||||
/// Validated package name
|
/// Validated package name
|
||||||
pub fn new(name: T) -> Result<Self, NameValidationError> {
|
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))
|
Ok(Self(name))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1231,7 +1231,7 @@ str_newtype!(RegistryName);
|
||||||
impl<T: AsRef<str>> RegistryName<T> {
|
impl<T: AsRef<str>> RegistryName<T> {
|
||||||
/// Validated registry name
|
/// Validated registry name
|
||||||
pub fn new(name: T) -> Result<Self, NameValidationError> {
|
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))
|
Ok(Self(name))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,13 +33,15 @@ enum ErrorKind {
|
||||||
FeatureNameStartsWithDepColon(String),
|
FeatureNameStartsWithDepColon(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check the base requirements for a package name.
|
pub(crate) fn validate_package_name(name: &str) -> Result<()> {
|
||||||
///
|
validate_name(name, "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
|
pub(crate) fn validate_registry_name(name: &str) -> Result<()> {
|
||||||
/// reserved names. crates.io has even more restrictions.
|
validate_name(name, "registry name")
|
||||||
pub(crate) fn validate_package_name(name: &str, what: &'static str) -> Result<()> {
|
}
|
||||||
|
|
||||||
|
pub(crate) fn validate_name(name: &str, what: &'static str) -> Result<()> {
|
||||||
if name.is_empty() {
|
if name.is_empty() {
|
||||||
return Err(ErrorKind::Empty(what).into());
|
return Err(ErrorKind::Empty(what).into());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue