Crate mod_events

Source
Expand description

§Mod Events

A high-performance, zero-overhead event dispatcher library for Rust.

§Features

  • Zero-cost abstractions: No runtime overhead for event dispatch
  • Type-safe: Compile-time guarantees for event handling
  • Thread-safe: Built for concurrent applications
  • Async support: Full async/await compatibility (with “async” feature)
  • Flexible: Support for sync, async, and priority-based listeners
  • Easy to use: Simple API and intuitive methods

§Quick Start

use mod_events::prelude::*;

// Define your event
#[derive(Debug, Clone)]
struct UserRegistered {
    user_id: u64,
    email: String,
}

impl Event for UserRegistered {
    fn as_any(&self) -> &dyn std::any::Any {
        self
    }
}

// Create dispatcher and subscribe
let dispatcher = EventDispatcher::new();
dispatcher.on(|event: &UserRegistered| {
    println!("Welcome {}!", event.email);
});

// Dispatch events
dispatcher.emit(UserRegistered {
    user_id: 123,
    email: "alice@example.com".to_string(),
});

Modules§

prelude
Convenience re-exports

Structs§

DispatchResult
Result of event dispatch
EventDispatcher
High-performance event dispatcher
EventMetadata
Event metadata for debugging and monitoring
ListenerId
Unique identifier for event listeners
MiddlewareManager
Middleware manager for event processing

Enums§

Priority
Priority levels for event listeners

Traits§

AsyncEventListener
Event
Core trait that all events must implement
EventListener
Trait for synchronous event listeners

Type Aliases§

AsyncEventResult
Trait for asynchronous event listeners
MiddlewareFunction
Middleware function type