From 1d7e6c38c98794c60dcaef5405cf01b12826036a Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 15 May 2026 20:08:44 +0900 Subject: feat(port): port RootPackage.php --- crates/shirabe/src/package/root_package.rs | 70 ++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'crates/shirabe/src/package') diff --git a/crates/shirabe/src/package/root_package.rs b/crates/shirabe/src/package/root_package.rs index 75651ed..f1c3ba8 100644 --- a/crates/shirabe/src/package/root_package.rs +++ b/crates/shirabe/src/package/root_package.rs @@ -1 +1,71 @@ //! ref: composer/src/Composer/Package/RootPackage.php + +use indexmap::IndexMap; +use shirabe_php_shim::PhpMixed; +use crate::package::complete_package::CompletePackage; +use crate::package::root_package_interface::RootPackageInterface; + +#[derive(Debug)] +pub struct RootPackage { + inner: CompletePackage, + pub(crate) minimum_stability: String, + pub(crate) prefer_stable: bool, + pub(crate) stability_flags: IndexMap, + pub(crate) config: IndexMap, + pub(crate) references: IndexMap, + pub(crate) aliases: Vec>, +} + +impl RootPackage { + pub const DEFAULT_PRETTY_VERSION: &'static str = "1.0.0+no-version-set"; +} + +impl RootPackageInterface for RootPackage { + fn set_minimum_stability(&mut self, minimum_stability: String) { + self.minimum_stability = minimum_stability; + } + + fn get_minimum_stability(&self) -> &str { + &self.minimum_stability + } + + fn set_stability_flags(&mut self, stability_flags: IndexMap) { + self.stability_flags = stability_flags; + } + + fn get_stability_flags(&self) -> &IndexMap { + &self.stability_flags + } + + fn set_prefer_stable(&mut self, prefer_stable: bool) { + self.prefer_stable = prefer_stable; + } + + fn get_prefer_stable(&self) -> bool { + self.prefer_stable + } + + fn set_config(&mut self, config: IndexMap) { + self.config = config; + } + + fn get_config(&self) -> &IndexMap { + &self.config + } + + fn set_references(&mut self, references: IndexMap) { + self.references = references; + } + + fn get_references(&self) -> &IndexMap { + &self.references + } + + fn set_aliases(&mut self, aliases: Vec>) { + self.aliases = aliases; + } + + fn get_aliases(&self) -> &Vec> { + &self.aliases + } +} -- cgit v1.3.1