From 4caf72463de598ea9b6454f3b7b7332dd0071318 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 10 May 2026 01:18:44 +0900 Subject: 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. --- crates/mozart-core/src/repository_utils.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'crates/mozart-core/src/repository_utils.rs') 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

( +pub fn filter_required_packages( packages: &[P], - requirer_requires: &std::collections::BTreeMap, - requirer_dev_requires: Option<&std::collections::BTreeMap>, + requirer_requires: &std::collections::BTreeMap, + requirer_dev_requires: Option<&std::collections::BTreeMap>, ) -> Vec 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 = BTreeMap::new(); let kept = filter_required_packages(&packages, &root, None); assert!(kept.is_empty()); } -- cgit v1.3.1