refactor(wally-compat): improve manifest parsing

This commit is contained in:
daimond113 2024-03-31 14:18:14 +02:00
parent 5a8907c335
commit 344416da3d
No known key found for this signature in database
GPG key ID: 3A8ECE51328B513C
2 changed files with 15 additions and 6 deletions

View file

@ -258,11 +258,11 @@ impl WallyPackageRef {
#[derive(Deserialize, Clone, Debug)]
#[serde(rename_all = "kebab-case")]
pub(crate) struct WallyPackage {
pub(crate) name: String,
pub(crate) name: WallyPackageName,
pub(crate) version: Version,
pub(crate) registry: Url,
#[serde(default)]
pub(crate) realm: Option<String>,
pub(crate) realm: Option<Realm>,
#[serde(default)]
pub(crate) description: Option<String>,
#[serde(default)]
@ -356,10 +356,7 @@ impl TryFrom<WallyManifest> for IndexFileEntry {
Ok(IndexFileEntry {
version: value.package.version,
realm: value
.package
.realm
.map(|r| r.parse().unwrap_or(Realm::Shared)),
realm: value.package.realm,
published_at: Default::default(),
description: value.package.description,
dependencies,

View file

@ -318,6 +318,18 @@ impl From<WallyPackageName> for PackageName {
}
}
#[cfg(feature = "wally")]
impl From<WallyPackageName> for StandardPackageName {
fn from(name: WallyPackageName) -> Self {
let (scope, name) = name.parts();
StandardPackageName(
scope[..scope.len().min(24)].replace('-', "_"),
name[..name.len().min(24)].replace('-', "_"),
)
}
}
name_impl!(
StandardPackageName,
StandardPackageNameValidationError,