diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-15 01:14:38 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-15 19:51:17 +0900 |
| commit | b63f78b65df064fb69d029a2d769ce52e9ec78ee (patch) | |
| tree | 79bcb463215979e79acc3fc740abf6bd2f1b9a17 /crates/shirabe/src/script | |
| parent | 02c2e4f4ed80073fd15661ca4c96fb066136bd52 (diff) | |
| download | php-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.rs | 64 |
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!() + } +} |
