diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-10 01:18:44 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-10 01:18:44 +0900 |
| commit | 4caf72463de598ea9b6454f3b7b7332dd0071318 (patch) | |
| tree | 62f99c8a48e5b21d75ab70bfd374eb67215542c9 /crates/mozart-core/src/repository_utils.rs | |
| parent | 8cc1ba8a02c0318b65658f1634de378c780392b9 (diff) | |
| download | php-mozart-4caf72463de598ea9b6454f3b7b7332dd0071318.tar.gz php-mozart-4caf72463de598ea9b6454f3b7b7332dd0071318.tar.zst php-mozart-4caf72463de598ea9b6454f3b7b7332dd0071318.zip | |
refactor(package): port RootPackageLoader into RootPackageData::from_raw
Mirrors Composer\Package\Loader\RootPackageLoader::load(): converts the
parsed RawPackageData into fully typed RootPackageData with Link objects,
defaulted fields, and trait-based accessors. Composer::package() now
returns RootPackageData instead of RawPackageData, eliminating the
pre-normalised JSON workaround noted in the previous comment.
Diffstat (limited to 'crates/mozart-core/src/repository_utils.rs')
| -rw-r--r-- | crates/mozart-core/src/repository_utils.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/crates/mozart-core/src/repository_utils.rs b/crates/mozart-core/src/repository_utils.rs index ecd5dd7..b16a0d6 100644 --- a/crates/mozart-core/src/repository_utils.rs +++ b/crates/mozart-core/src/repository_utils.rs @@ -36,10 +36,10 @@ pub trait Required { /// /// The returned vector preserves the order in which packages were /// discovered, matching PHP's `$bucket[] = $candidate;` push pattern. -pub fn filter_required_packages<P>( +pub fn filter_required_packages<P, V>( packages: &[P], - requirer_requires: &std::collections::BTreeMap<String, String>, - requirer_dev_requires: Option<&std::collections::BTreeMap<String, String>>, + requirer_requires: &std::collections::BTreeMap<String, V>, + requirer_dev_requires: Option<&std::collections::BTreeMap<String, V>>, ) -> Vec<usize> where P: Required, @@ -167,7 +167,7 @@ mod tests { #[test] fn empty_requires_yields_nothing() { let packages = vec![pkg("a/a", &[]), pkg("b/b", &[])]; - let root = BTreeMap::new(); + let root: BTreeMap<String, String> = BTreeMap::new(); let kept = filter_required_packages(&packages, &root, None); assert!(kept.is_empty()); } |
