aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart-core/src/installer
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-11 02:05:34 +0900
committernsfisis <nsfisis@gmail.com>2026-05-11 02:05:34 +0900
commit4df5f8491320e5795718cf0222e80fa27e57c8ad (patch)
tree707e19f34dbdef18490ec3245d34389e3d189a57 /crates/mozart-core/src/installer
parent8871b923fa3df1935c263db155cb8bc3d59705cd (diff)
downloadphp-mozart-4df5f8491320e5795718cf0222e80fa27e57c8ad.tar.gz
php-mozart-4df5f8491320e5795718cf0222e80fa27e57c8ad.tar.zst
php-mozart-4df5f8491320e5795718cf0222e80fa27e57c8ad.zip
refactor(package): rename traits and switch dep maps to IndexMap
Rename Package/CompletePackage to PackageInterface/CompletePackageInterface to mirror Composer's interface names, and split each into its own module under crates/mozart-core/src/package/. Switch dependency-link and metadata maps from BTreeMap to indexmap::IndexMap so serialized JSON preserves the original key ordering rather than sorting alphabetically — matching PHP associative-array semantics. The --sort-packages behaviour in `require` is preserved via sort_unstable_keys.
Diffstat (limited to 'crates/mozart-core/src/installer')
-rw-r--r--crates/mozart-core/src/installer/installed_repo.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/crates/mozart-core/src/installer/installed_repo.rs b/crates/mozart-core/src/installer/installed_repo.rs
index 8361158..d7e4f83 100644
--- a/crates/mozart-core/src/installer/installed_repo.rs
+++ b/crates/mozart-core/src/installer/installed_repo.rs
@@ -17,7 +17,6 @@
//! or through a `provide` / `replace` link.
use indexmap::IndexSet;
-use std::collections::BTreeMap;
/// One installed package, in the shape `findPackagesWithReplacersAndProviders`
/// needs. Mirrors the fields of `Composer\Package\PackageInterface` that the
@@ -33,9 +32,9 @@ pub struct InstalledCandidate {
/// Original-case version, used in user-facing output.
pub pretty_version: String,
/// `provide` map: target package name → constraint string.
- pub provides: BTreeMap<String, String>,
+ pub provides: indexmap::IndexMap<String, String>,
/// `replace` map: target package name → constraint string.
- pub replaces: BTreeMap<String, String>,
+ pub replaces: indexmap::IndexMap<String, String>,
}
#[derive(Debug, Clone, Default)]
@@ -106,8 +105,8 @@ mod tests {
pretty_name: name.to_string(),
version: version.to_string(),
pretty_version: version.to_string(),
- provides: BTreeMap::new(),
- replaces: BTreeMap::new(),
+ provides: indexmap::IndexMap::new(),
+ replaces: indexmap::IndexMap::new(),
}
}