diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-11 02:05:34 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-11 02:05:34 +0900 |
| commit | 4df5f8491320e5795718cf0222e80fa27e57c8ad (patch) | |
| tree | 707e19f34dbdef18490ec3245d34389e3d189a57 /crates/mozart/src/commands/init.rs | |
| parent | 8871b923fa3df1935c263db155cb8bc3d59705cd (diff) | |
| download | php-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/src/commands/init.rs')
| -rw-r--r-- | crates/mozart/src/commands/init.rs | 10 |
1 files changed, 5 insertions, 5 deletions
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 [<comment>yes</comment>]?" )) { - let all_required: BTreeMap<String, String> = 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<String, String>, + already_required: &indexmap::IndexMap<String, String>, preferred_stability: Stability, repo_cache: &mozart_core::repository::cache::Cache, io: &std::sync::Arc<std::sync::Mutex<Box<dyn IoInterface>>>, @@ -749,8 +749,8 @@ fn get_git_config_value(key: &str) -> Option<String> { get_git_config().get(key).cloned().filter(|v| !v.is_empty()) } -fn parse_requirements(reqs: &[String]) -> anyhow::Result<BTreeMap<String, String>> { - let mut map = BTreeMap::new(); +fn parse_requirements(reqs: &[String]) -> anyhow::Result<indexmap::IndexMap<String, String>> { + 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<BTreeMap<String, String fn build_autoload(path: &str, package_name: &str) -> Option<RawAutoload> { 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 }) } |
