diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-16 00:17:22 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-16 10:00:40 +0900 |
| commit | 00a6a184fedafbb92f96dff8ddd19dafb127cc96 (patch) | |
| tree | 155cc3e9fbc14059731e6884d9a367d37b74af17 /crates/shirabe/src/package | |
| parent | 5f57697dd08416386642bbaaaa742d0e6888a5fa (diff) | |
| download | php-shirabe-00a6a184fedafbb92f96dff8ddd19dafb127cc96.tar.gz php-shirabe-00a6a184fedafbb92f96dff8ddd19dafb127cc96.tar.zst php-shirabe-00a6a184fedafbb92f96dff8ddd19dafb127cc96.zip | |
feat(port): port RootAliasPackage.php
Diffstat (limited to 'crates/shirabe/src/package')
| -rw-r--r-- | crates/shirabe/src/package/root_alias_package.rs | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/crates/shirabe/src/package/root_alias_package.rs b/crates/shirabe/src/package/root_alias_package.rs index 23890b2..63fcc82 100644 --- a/crates/shirabe/src/package/root_alias_package.rs +++ b/crates/shirabe/src/package/root_alias_package.rs @@ -1 +1,119 @@ //! ref: composer/src/Composer/Package/RootAliasPackage.php + +use indexmap::IndexMap; +use shirabe_php_shim::PhpMixed; + +use crate::package::complete_alias_package::CompleteAliasPackage; +use crate::package::link::Link; +use crate::package::root_package::RootPackage; +use crate::package::root_package_interface::RootPackageInterface; + +#[derive(Debug)] +pub struct RootAliasPackage { + inner: CompleteAliasPackage, + // overrides CompleteAliasPackage::alias_of with the more specific RootPackage type + pub(crate) alias_of: RootPackage, +} + +impl RootAliasPackage { + pub fn new(alias_of: RootPackage, version: String, pretty_version: String) -> Self { + // TODO(phase-b): RootPackage.inner (CompletePackage) is not accessible here + let inner: CompleteAliasPackage = todo!(); + Self { inner, alias_of } + } + + pub fn get_alias_of(&self) -> &RootPackage { + &self.alias_of + } +} + +impl RootPackageInterface for RootAliasPackage { + fn get_aliases(&self) -> Vec<IndexMap<String, String>> { + self.alias_of.get_aliases().clone() + } + + fn get_minimum_stability(&self) -> &str { + self.alias_of.get_minimum_stability() + } + + fn get_stability_flags(&self) -> IndexMap<String, i64> { + self.alias_of.get_stability_flags().clone() + } + + fn get_references(&self) -> IndexMap<String, String> { + self.alias_of.get_references().clone() + } + + fn get_prefer_stable(&self) -> bool { + self.alias_of.get_prefer_stable() + } + + fn get_config(&self) -> IndexMap<String, PhpMixed> { + self.alias_of.get_config().clone() + } + + fn set_requires(&mut self, requires: Vec<Link>) { + // TODO(phase-b): self.inner.requires = self.replace_self_version_dependencies(requires.clone(), Link::TYPE_REQUIRE) + self.alias_of.set_requires(requires); + } + + fn set_dev_requires(&mut self, dev_requires: Vec<Link>) { + // TODO(phase-b): self.inner.dev_requires = self.replace_self_version_dependencies(dev_requires.clone(), Link::TYPE_DEV_REQUIRE) + self.alias_of.set_dev_requires(dev_requires); + } + + fn set_conflicts(&mut self, conflicts: Vec<Link>) { + // TODO(phase-b): self.inner.conflicts = self.replace_self_version_dependencies(conflicts.clone(), Link::TYPE_CONFLICT) + self.alias_of.set_conflicts(conflicts); + } + + fn set_provides(&mut self, provides: Vec<Link>) { + // TODO(phase-b): self.inner.provides = self.replace_self_version_dependencies(provides.clone(), Link::TYPE_PROVIDE) + self.alias_of.set_provides(provides); + } + + fn set_replaces(&mut self, replaces: Vec<Link>) { + // TODO(phase-b): self.inner.replaces = self.replace_self_version_dependencies(replaces.clone(), Link::TYPE_REPLACE) + self.alias_of.set_replaces(replaces); + } + + fn set_autoload(&mut self, autoload: IndexMap<String, PhpMixed>) { + self.alias_of.set_autoload(autoload); + } + + fn set_dev_autoload(&mut self, dev_autoload: IndexMap<String, PhpMixed>) { + self.alias_of.set_dev_autoload(dev_autoload); + } + + fn set_stability_flags(&mut self, stability_flags: IndexMap<String, i64>) { + self.alias_of.set_stability_flags(stability_flags); + } + + fn set_minimum_stability(&mut self, minimum_stability: String) { + self.alias_of.set_minimum_stability(minimum_stability); + } + + fn set_prefer_stable(&mut self, prefer_stable: bool) { + self.alias_of.set_prefer_stable(prefer_stable); + } + + fn set_config(&mut self, config: IndexMap<String, PhpMixed>) { + self.alias_of.set_config(config); + } + + fn set_references(&mut self, references: IndexMap<String, String>) { + self.alias_of.set_references(references); + } + + fn set_aliases(&mut self, aliases: Vec<IndexMap<String, String>>) { + self.alias_of.set_aliases(aliases); + } + + fn set_suggests(&mut self, suggests: IndexMap<String, String>) { + self.alias_of.set_suggests(suggests); + } + + fn set_extra(&mut self, extra: IndexMap<String, PhpMixed>) { + self.alias_of.set_extra(extra); + } +} |
