3 releases
new 0.1.2 | Jan 15, 2025 |
---|---|
0.1.1 | Jul 11, 2024 |
0.1.0 | May 9, 2023 |
#45 in No standard library
2,523 downloads per month
5KB
51 lines
handler_table
A lock-free table of event handlers.
Examples
use handler_table::HandlerTable;
static TABLE: HandlerTable<8> = HandlerTable::new();
TABLE.register_handler(0, || {
println!("Hello, event 0!");
});
TABLE.register_handler(1, || {
println!("Hello, event 1!");
});
assert!(TABLE.handle(0)); // print "Hello, event 0!"
assert!(!TABLE.handle(2)); // unregistered
assert!(TABLE.unregister_handler(2).is_none());
let func = TABLE.unregister_handler(1).unwrap(); // retrieve the handler
func(); // print "Hello, event 1!"
assert!(!TABLE.handle(1)); // unregistered