pub struct EventDispatcher { /* private fields */ }Implementations§
Source§impl EventDispatcher
impl EventDispatcher
pub fn new() -> Self
Sourcepub fn get_listeners(&self) -> &HashMap<String, Vec<Sender<Option<Value>>>>
pub fn get_listeners(&self) -> &HashMap<String, Vec<Sender<Option<Value>>>>
@description: 获取事件列表 @author: tgy3300 @Date: 2025-03-29 12:20:36 @param {} self @return {}
Sourcepub fn add_event_listener(
&mut self,
name: &str,
listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>,
)
pub fn add_event_listener( &mut self, name: &str, listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>, )
@description: 订阅事件 @author: tgy3300 @Date: 2025-03-29 12:20:08 @param {} name 事件名 @param {Option} listener 事件方法 @return {}
Sourcepub fn has_event_listener(
&self,
name: &str,
listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>,
) -> bool
pub fn has_event_listener( &self, name: &str, listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>, ) -> bool
@description: 判断事件名下指定事件方法是否存在,这里有问题,无法通过listener区分判断 @author: tgy3300 @Date: 2025-03-29 12:19:38 @param {} name @param {EventListener} listener @return {}
Sourcepub fn has_event(&self, name: &str) -> bool
pub fn has_event(&self, name: &str) -> bool
@description: 判断事件是否存在 @author: tgy3300 @Date: 2025-03-29 12:19:11 @param {} name @return {}
Sourcepub fn remove_event_listener(
&mut self,
name: &str,
listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>,
)
pub fn remove_event_listener( &mut self, name: &str, listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>, )
@description: 移除事件下指定事件方法(包括该事件对应的节流事件和防抖事件) @author: tgy3300 @Date: 2025-03-29 12:17:39 @param {} name 事件名 @param {EventListener} listener 事件方法 @return {}
Sourcepub fn remove_event(&mut self, name: &str)
pub fn remove_event(&mut self, name: &str)
@description: 移除事件 @author: tgy3300 @Date: 2025-03-29 12:17:00 @param {} name 事件名 @return {}
Sourcepub fn dispatch_event(&self, event: Event)
pub fn dispatch_event(&self, event: Event)
@description: 触发事件 @author: tgy3300 @Date: 2025-03-29 12:15:47 @param {Event} event 事件数据 @return {*}
Sourcepub fn once(
&self,
_name: &str,
_listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>,
)
pub fn once( &self, _name: &str, _listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>, )
@description: 一次性触发,触发之后会自动移除,再次触发无效果 @author: tgy3300 @Date: 2025-03-29 12:13:34 @param {} self @param {} _name @param {Option} _listener @return {*}
Sourcepub fn emit(&self, name: &str, params: Option<Value>)
pub fn emit(&self, name: &str, params: Option<Value>)
@description: 触发事件 @author: tgy3300 @Date: 2025-03-29 12:13:05 @param {} name 事件名 @param {Option} params 事件参数 @return {}
Sourcepub fn on<F, Fut>(&mut self, name: &str, listener: F)
pub fn on<F, Fut>(&mut self, name: &str, listener: F)
@description: 订阅事件 @author: tgy3300 @Date: 2025-03-29 12:12:40 @param {} name 事件名 @param {Option} listener 事件方法 @return {}
Sourcepub fn has(
&self,
name: &str,
listener: Option<Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>>,
) -> bool
pub fn has( &self, name: &str, listener: Option<Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>>, ) -> bool
@description: 判断事件名、事件名下指定事件方法是否存在,通过listener区分判断 @author: tgy3300 @Date: 2025-03-29 12:10:06 @param {} name 事件名 @param {Option} listener 事件方法 @return {}
Sourcepub fn off(
&mut self,
name: &str,
listener: Option<Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>>,
)
pub fn off( &mut self, name: &str, listener: Option<Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>>, )
@description: 移除事件,如果不传listener就会移除整个name事件 @author: tgy3300 @Date: 2025-03-29 12:09:22 @param {} name 事件名 @param {Option} listener 事件方法 @return {}
Sourcepub fn event_count(&self, name: &str) -> usize
pub fn event_count(&self, name: &str) -> usize
@description: 获取该事件类型下的事件数量 @author: tgy3300 @Date: 2025-03-29 12:06:55 @param {} name 事件名 @return {}
Sourcepub fn pop_latest_event(&mut self, name: &str) -> bool
pub fn pop_latest_event(&mut self, name: &str) -> bool
@description: 销毁该类型的最后一个事件 @author: tgy3300 @Date: 2025-03-29 12:05:38 @param {} name 事件名 @return {}
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
@description: 清空所有事件类型的事件 @author: tgy3300 @Date: 2025-03-29 12:05:14 @return {*}
Sourcepub fn useful(&self) -> bool
pub fn useful(&self) -> bool
@description: 当前派发器是否使用 @author: tgy3300 @Date: 2025-03-29 12:04:43 @return {*}
Sourcepub fn on_throttle(
&self,
_name: &str,
_listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>,
_time: u64,
)
pub fn on_throttle( &self, _name: &str, _listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>, _time: u64, )
@description: 节流触发 @author: tgy3300 @Date: 2025-03-29 12:06:04 @param {} name 事件名 @param {Option} listener 事件方法 @param {u64} time 节流时间 @return {}
Sourcepub fn on_anti_shake(
&self,
_name: &str,
_listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>,
_time: u64,
)
pub fn on_anti_shake( &self, _name: &str, _listener: Box<dyn Fn(Option<Value>) -> Pin<Box<dyn Future<Output = ()> + Send + Sync>> + Send + Sync>, _time: u64, )
@description: 防抖触发 @author: tgy3300 @Date: 2025-03-29 12:06:23 @param {} name 事件名 @param {Option} listener 事件方法 @param {u64} time 防抖时间 @return {}
Trait Implementations§
Source§impl Clone for EventDispatcher
impl Clone for EventDispatcher
Source§fn clone(&self) -> EventDispatcher
fn clone(&self) -> EventDispatcher
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more