EventEmitter

Struct EventEmitter

Source
pub struct EventEmitter { /* private fields */ }

Implementations§

Source§

impl EventEmitter

Source

pub fn new() -> Self

Creates an EventEmitter instance

§Examples
use std::sync::{Arc};
use EventEmitter::EventEmitter;
 
fn main() {
    let emitter = EventEmitter::new();
 
    let callback1 = Arc::new(|| println!("[event1 emitted]: The first callback of event1 has been called."));
    let callback2 = Arc::new(|| println!("[event1 emitted]: The second callback of event1 has been called."));
    let callback3 = Arc::new(|| println!("[event2 emitted]: The only one callbask of event2 has been called."));
 
    // Add event listener
    emitter.on("event1", callback1);
    emitter.add_listener("event1", callback2); // The `add_listene` method is an alias method for the `on` method.
    emitter.on("event2", callback3);
 
    let ct1 = emitter.listener_count("event1");
    let ct2 = emitter.listener_count("event2");
    println!("Number of Listeners for event1 is: {ct1}, \nNumber of Listeners for event2 is: {ct2}");
 
    emitter.emit("event1"); // Emit event1
    emitter.emit("event2"); // Emit event1
}
Source

pub fn set_max_listeners(&mut self, max_listeners: usize)

设置最大监听器数量 Set the maximum number of listeners

Source

pub fn get_max_listeners(&self) -> usize

获取最大监听器数量

Source

pub fn add_listener(&self, event: &str, callback: Arc<dyn Fn() + Send + Sync>)

添加事件监听器

on 方法的别名

Get the maximum number of listeners

alias method for the on method.

Source

pub fn on(&self, event: &str, callback: Arc<dyn Fn() + Send + Sync>)

添加事件监听器 Add event listener

Source

pub fn remove_listener( &self, event: &str, callback: &Arc<dyn Fn() + Send + Sync>, )

移除事件监听器

off 方法的别名

Remove the event listener

alias method for the off method.

Source

pub fn off(&self, event: &str, callback: &Arc<dyn Fn() + Send + Sync>)

Source

pub fn emit(&self, event: &str)

添加一次性事件监听器

使用该方法添加的监听器函数将在发布一次事件成功执行后移除。

Add a one-time event listener

Listener functions added by this method will be removed after publishing an event successfully.

触发事件

触发相当于“发布-订阅”模式中的“发布”,一但某个事件被触发,该事件对应得所有监听器函数都会被执行。监听器就相当于“订阅者”。

trigger event

Triggering is equivalent to “publish” in “publish-subscribe” mode. Once an event is triggered, all listeners corresponding to the event will be executed. Listeners are equivalent to “subscribers”.

Source

pub fn remove_all_listeners(&self, event: &str)

移除所有事件的所有监听器 Remove all listeners for all events.

Source

pub fn prepend_listener( &self, event: &str, callback: Arc<dyn Fn() + Send + Sync>, )

Source

pub fn listeners(&self, event: &str) -> Vec<Arc<dyn Fn() + Send + Sync>>

获取指定事件的监听器

Gets the listener for the specified event.

Source

pub fn listener_count(&self, event: &str) -> usize

获取指定事件的监听器数量

Gets the number of listeners for the specified event.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.