aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/script
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-15 01:14:38 +0900
committernsfisis <nsfisis@gmail.com>2026-05-15 19:51:17 +0900
commitb63f78b65df064fb69d029a2d769ce52e9ec78ee (patch)
tree79bcb463215979e79acc3fc740abf6bd2f1b9a17 /crates/shirabe/src/script
parent02c2e4f4ed80073fd15661ca4c96fb066136bd52 (diff)
downloadphp-shirabe-b63f78b65df064fb69d029a2d769ce52e9ec78ee.tar.gz
php-shirabe-b63f78b65df064fb69d029a2d769ce52e9ec78ee.tar.zst
php-shirabe-b63f78b65df064fb69d029a2d769ce52e9ec78ee.zip
feat(port): port Event.php (Script)
Diffstat (limited to 'crates/shirabe/src/script')
-rw-r--r--crates/shirabe/src/script/event.rs64
1 files changed, 64 insertions, 0 deletions
diff --git a/crates/shirabe/src/script/event.rs b/crates/shirabe/src/script/event.rs
index 803bcfc..aeb63f0 100644
--- a/crates/shirabe/src/script/event.rs
+++ b/crates/shirabe/src/script/event.rs
@@ -1 +1,65 @@
//! ref: composer/src/Composer/Script/Event.php
+
+use indexmap::IndexMap;
+use shirabe_php_shim::PhpMixed;
+use crate::composer::Composer;
+use crate::event_dispatcher::event::Event as BaseEvent;
+use crate::io::io_interface::IOInterface;
+
+#[derive(Debug)]
+pub struct Event {
+ inner: BaseEvent,
+ composer: Composer,
+ io: Box<dyn IOInterface>,
+ dev_mode: bool,
+ originating_event: Option<Box<BaseEvent>>,
+}
+
+impl Event {
+ pub fn new(
+ name: String,
+ composer: Composer,
+ io: Box<dyn IOInterface>,
+ dev_mode: bool,
+ args: Vec<String>,
+ flags: IndexMap<String, PhpMixed>,
+ ) -> Self {
+ Self {
+ inner: BaseEvent::new(name, args, flags),
+ composer,
+ io,
+ dev_mode,
+ originating_event: None,
+ }
+ }
+
+ 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_originating_event(&self) -> Option<&BaseEvent> {
+ self.originating_event.as_deref()
+ }
+
+ pub fn set_originating_event(&mut self, event: BaseEvent) -> &mut Self {
+ self.originating_event = Some(Box::new(self.calculate_originating_event(event)));
+ self
+ }
+
+ fn calculate_originating_event(&self, event: BaseEvent) -> BaseEvent {
+ // if ($event instanceof Event && $event->getOriginatingEvent()) {
+ // return $this->calculateOriginatingEvent($event->getOriginatingEvent());
+ // }
+ //
+ // return $event;
+ todo!()
+ }
+}