| Crates.io | k-event-system |
| lib.rs | k-event-system |
| version | 0.1.0 |
| created_at | 2025-07-20 04:38:41.179816+00 |
| updated_at | 2025-07-20 04:38:41.179816+00 |
| description | A very super simple event system, only three functions: subscribe, unsubscribe and publish. (and a singleton, never mind.) Supports async. (see `main-async` in examples) |
| homepage | |
| repository | https://github.com/kdletters/event-system |
| max_upload_size | |
| id | 1760793 |
| size | 18,859 |
A very super simple event system, only three functions: subscribe, unsubscribe and publish. (and a singleton, never mind.)
Supports async. (see main-async in examples)
let handle = event_system::EventSystem::singleton().subscribe(|x: &usize| println!("I am {}", x));
event_system::EventSystem::singleton().publish(&4usize);
event_system::EventSystem::singleton().subscribe(test);
event_system::EventSystem::singleton().publish(&6usize);
event_system::EventSystem::singleton().unsubscribe::<usize>(handle);
event_system::EventSystem::singleton().publish(&8usize);
event_system::EventSystem::singleton().subscribe(on_login);
event_system::EventSystem::singleton().publish(&Login);
fn test(i: &usize) {
println!("I am F {}", i);
}
// with no params, you have to create a struct to distinguish between events
struct Login;
fn on_login(_: &Login) {
println!("on login");
}
Output:
I am 4
I am 6
I am F 6
I am F 8
on login