#events #system #macro #key #fired

bin+lib event_system

简单轻量级事件系统

2 个版本

0.1.1 2022年12月2日
0.1.0 2022年12月2日

#100#event

MIT 许可证

4KB

事件系统

为 Rust 提供一个简单轻量级的事件系统。

Crate on Crates.io

示例

宏的第一个条目是事件系统结构体的名称。

任何后续条目采用结构-枚举变体的形式,其中名称是事件名称,数据是事件触发时的有效负载结构。

use event_system::create_event_system;

create_event_system! {
    EventSystem // <- Name of struct
    ApplicationLoad {}
    ApplicationExit {}
    KeyDown {
        key: u8,
    }
}

fn main() {
    let mut events = EventSystem::new();
    events.register_key_down(key_down);

    events.fire_application_load();
    events.fire_key_down(EventKeyDown { key: 55 });
    events.fire_application_exit();
}

fn key_down(packet: EventKeyDown) -> bool {
    println!("Key down {:?}", packet.key);
    true
}

依赖项

~2MB
~44K SLoC