From c184a4cb4a909b11c053c1037fc6e21ef2692e94 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 15 May 2026 20:05:32 +0900 Subject: feat(port): port PartialComposer.php --- crates/shirabe/src/partial_composer.rs | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/crates/shirabe/src/partial_composer.rs b/crates/shirabe/src/partial_composer.rs index c382cf0..a08e272 100644 --- a/crates/shirabe/src/partial_composer.rs +++ b/crates/shirabe/src/partial_composer.rs @@ -1 +1,77 @@ //! ref: composer/src/Composer/PartialComposer.php + +use crate::config::Config; +use crate::event_dispatcher::event_dispatcher::EventDispatcher; +use crate::installer::installation_manager::InstallationManager; +use crate::package::root_package_interface::RootPackageInterface; +use crate::repository::repository_manager::RepositoryManager; +use crate::util::r#loop::Loop; + +#[derive(Debug)] +pub struct PartialComposer { + global: bool, + package: Option>, + r#loop: Option, + repository_manager: Option, + installation_manager: Option, + config: Option, + event_dispatcher: Option, +} + +impl PartialComposer { + pub fn set_package(&mut self, package: Box) { + self.package = Some(package); + } + + pub fn get_package(&self) -> &dyn RootPackageInterface { + self.package.as_deref().unwrap() + } + + pub fn set_config(&mut self, config: Config) { + self.config = Some(config); + } + + pub fn get_config(&self) -> &Config { + self.config.as_ref().unwrap() + } + + pub fn set_loop(&mut self, r#loop: Loop) { + self.r#loop = Some(r#loop); + } + + pub fn get_loop(&self) -> &Loop { + self.r#loop.as_ref().unwrap() + } + + pub fn set_repository_manager(&mut self, manager: RepositoryManager) { + self.repository_manager = Some(manager); + } + + pub fn get_repository_manager(&self) -> &RepositoryManager { + self.repository_manager.as_ref().unwrap() + } + + pub fn set_installation_manager(&mut self, manager: InstallationManager) { + self.installation_manager = Some(manager); + } + + pub fn get_installation_manager(&self) -> &InstallationManager { + self.installation_manager.as_ref().unwrap() + } + + pub fn set_event_dispatcher(&mut self, event_dispatcher: EventDispatcher) { + self.event_dispatcher = Some(event_dispatcher); + } + + pub fn get_event_dispatcher(&self) -> &EventDispatcher { + self.event_dispatcher.as_ref().unwrap() + } + + pub fn is_global(&self) -> bool { + self.global + } + + pub fn set_global(&mut self) { + self.global = true; + } +} -- cgit v1.3.1