aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/event_dispatcher
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/event_dispatcher')
-rw-r--r--crates/shirabe/src/event_dispatcher/event_subscriber_interface.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/crates/shirabe/src/event_dispatcher/event_subscriber_interface.rs b/crates/shirabe/src/event_dispatcher/event_subscriber_interface.rs
index 70c689c..41d723d 100644
--- a/crates/shirabe/src/event_dispatcher/event_subscriber_interface.rs
+++ b/crates/shirabe/src/event_dispatcher/event_subscriber_interface.rs
@@ -1 +1,15 @@
//! ref: composer/src/Composer/EventDispatcher/EventSubscriberInterface.php
+
+use indexmap::IndexMap;
+
+/// Represents one event's subscriber info: method name only, method+priority, or multiple handlers.
+pub enum SubscribedEventEntry {
+ Method(String),
+ MethodWithPriority(String, Option<i64>),
+ Methods(Vec<(String, Option<i64>)>),
+}
+
+pub trait EventSubscriberInterface {
+ /// Returns an array of event names this subscriber wants to listen to.
+ fn get_subscribed_events() -> IndexMap<String, SubscribedEventEntry>;
+}