diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-15 00:51:25 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-15 02:37:37 +0900 |
| commit | 87e3ca50511ddce5de6241f8bb8770666ca88e31 (patch) | |
| tree | bfdf770be4310e60f08b4de6f5bbbf63f4873904 | |
| parent | 145a501f142da5bca765e4af7083e52d2f151f87 (diff) | |
| download | php-shirabe-87e3ca50511ddce5de6241f8bb8770666ca88e31.tar.gz php-shirabe-87e3ca50511ddce5de6241f8bb8770666ca88e31.tar.zst php-shirabe-87e3ca50511ddce5de6241f8bb8770666ca88e31.zip | |
feat(port): port PackageEvent.php
| -rw-r--r-- | crates/shirabe/src/installer/package_event.rs | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/crates/shirabe/src/installer/package_event.rs b/crates/shirabe/src/installer/package_event.rs index 79801ec..537e97e 100644 --- a/crates/shirabe/src/installer/package_event.rs +++ b/crates/shirabe/src/installer/package_event.rs @@ -1 +1,65 @@ //! ref: composer/src/Composer/Installer/PackageEvent.php + +use indexmap::IndexMap; +use crate::composer::Composer; +use crate::dependency_resolver::operation::operation_interface::OperationInterface; +use crate::event_dispatcher::event::Event; +use crate::io::io_interface::IOInterface; +use crate::repository::repository_interface::RepositoryInterface; + +#[derive(Debug)] +pub struct PackageEvent { + inner: Event, + composer: Composer, + io: Box<dyn IOInterface>, + dev_mode: bool, + local_repo: Box<dyn RepositoryInterface>, + operations: Vec<Box<dyn OperationInterface>>, + operation: Box<dyn OperationInterface>, +} + +impl PackageEvent { + pub fn new( + event_name: String, + composer: Composer, + io: Box<dyn IOInterface>, + dev_mode: bool, + local_repo: Box<dyn RepositoryInterface>, + operations: Vec<Box<dyn OperationInterface>>, + operation: Box<dyn OperationInterface>, + ) -> Self { + Self { + inner: Event::new(event_name, vec![], IndexMap::new()), + composer, + io, + dev_mode, + local_repo, + operations, + operation, + } + } + + pub fn get_composer(&self) -> &Composer { + &self.composer + } + + pub fn get_io(&self) -> &dyn IOInterface { + self.io.as_ref() + } + + pub fn is_dev_mode(&self) -> bool { + self.dev_mode + } + + pub fn get_local_repo(&self) -> &dyn RepositoryInterface { + self.local_repo.as_ref() + } + + pub fn get_operations(&self) -> &Vec<Box<dyn OperationInterface>> { + &self.operations + } + + pub fn get_operation(&self) -> &dyn OperationInterface { + self.operation.as_ref() + } +} |
