aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-15 00:31:49 +0900
committernsfisis <nsfisis@gmail.com>2026-05-15 02:37:37 +0900
commitb21e16434be1b7bf86a7fd31184998425a6ee9bf (patch)
treee9578603918760dcc2c9b8eed1c56901b7db5e8f /crates/shirabe
parentf7fea071d4dcbda70adea9c871ad4226193b32cf (diff)
downloadphp-shirabe-b21e16434be1b7bf86a7fd31184998425a6ee9bf.tar.gz
php-shirabe-b21e16434be1b7bf86a7fd31184998425a6ee9bf.tar.zst
php-shirabe-b21e16434be1b7bf86a7fd31184998425a6ee9bf.zip
feat(port): port Event.php
Diffstat (limited to 'crates/shirabe')
-rw-r--r--crates/shirabe/src/event_dispatcher/event.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/crates/shirabe/src/event_dispatcher/event.rs b/crates/shirabe/src/event_dispatcher/event.rs
index ea059c9..81ab921 100644
--- a/crates/shirabe/src/event_dispatcher/event.rs
+++ b/crates/shirabe/src/event_dispatcher/event.rs
@@ -1 +1,43 @@
//! ref: composer/src/Composer/EventDispatcher/Event.php
+
+use indexmap::IndexMap;
+use shirabe_php_shim::PhpMixed;
+
+#[derive(Debug)]
+pub struct Event {
+ pub(crate) name: String,
+ pub(crate) args: Vec<String>,
+ pub(crate) flags: IndexMap<String, PhpMixed>,
+ propagation_stopped: bool,
+}
+
+impl Event {
+ pub fn new(name: String, args: Vec<String>, flags: IndexMap<String, PhpMixed>) -> Self {
+ Self {
+ name,
+ args,
+ flags,
+ propagation_stopped: false,
+ }
+ }
+
+ pub fn get_name(&self) -> &str {
+ &self.name
+ }
+
+ pub fn get_arguments(&self) -> &Vec<String> {
+ &self.args
+ }
+
+ pub fn get_flags(&self) -> &IndexMap<String, PhpMixed> {
+ &self.flags
+ }
+
+ pub fn is_propagation_stopped(&self) -> bool {
+ self.propagation_stopped
+ }
+
+ pub fn stop_propagation(&mut self) {
+ self.propagation_stopped = true;
+ }
+}