From 4df5f8491320e5795718cf0222e80fa27e57c8ad Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 11 May 2026 02:05:34 +0900 Subject: refactor(package): rename traits and switch dep maps to IndexMap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- crates/mozart/src/commands/init.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'crates/mozart/src/commands/init.rs') diff --git a/crates/mozart/src/commands/init.rs b/crates/mozart/src/commands/init.rs index 0e16054..4598d39 100644 --- a/crates/mozart/src/commands/init.rs +++ b/crates/mozart/src/commands/init.rs @@ -425,7 +425,7 @@ async fn build_interactive( "Would you like to define your dev dependencies (require-dev) interactively [yes]?" )) { - let all_required: BTreeMap = require + let all_required: indexmap::IndexMap<_, _> = require .iter() .chain(require_dev.iter()) .map(|(k, v)| (k.clone(), v.clone())) @@ -493,7 +493,7 @@ async fn build_interactive( /// Returns a map of package name → version constraint selected by the user. async fn interactive_search_packages( label: &str, - already_required: &BTreeMap, + already_required: &indexmap::IndexMap, preferred_stability: Stability, repo_cache: &mozart_core::repository::cache::Cache, io: &std::sync::Arc>>, @@ -749,8 +749,8 @@ fn get_git_config_value(key: &str) -> Option { get_git_config().get(key).cloned().filter(|v| !v.is_empty()) } -fn parse_requirements(reqs: &[String]) -> anyhow::Result> { - let mut map = BTreeMap::new(); +fn parse_requirements(reqs: &[String]) -> anyhow::Result> { + let mut map = indexmap::IndexMap::new(); for req in reqs { let (name, version) = validation::parse_require_string(req).map_err(|e| anyhow::anyhow!(e))?; @@ -761,7 +761,7 @@ fn parse_requirements(reqs: &[String]) -> anyhow::Result Option { let namespace = validation::namespace_from_package_name(package_name)?; - let mut psr4 = BTreeMap::new(); + let mut psr4 = indexmap::IndexMap::new(); psr4.insert(format!("{namespace}\\"), path.to_string()); Some(RawAutoload { psr4 }) } -- cgit v1.3.1