aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-15 00:51:25 +0900
committernsfisis <nsfisis@gmail.com>2026-05-15 02:37:37 +0900
commit87e3ca50511ddce5de6241f8bb8770666ca88e31 (patch)
treebfdf770be4310e60f08b4de6f5bbbf63f4873904 /crates/shirabe/src
parent145a501f142da5bca765e4af7083e52d2f151f87 (diff)
downloadphp-shirabe-87e3ca50511ddce5de6241f8bb8770666ca88e31.tar.gz
php-shirabe-87e3ca50511ddce5de6241f8bb8770666ca88e31.tar.zst
php-shirabe-87e3ca50511ddce5de6241f8bb8770666ca88e31.zip
feat(port): port PackageEvent.php
Diffstat (limited to 'crates/shirabe/src')
-rw-r--r--crates/shirabe/src/installer/package_event.rs64
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()
+ }
+}