3 releases

0.1.2 Jan 15, 2025
0.1.1 Jul 11, 2024
0.1.0 May 9, 2023

#176 in No standard library

Download history 597/week @ 2025-10-09 313/week @ 2025-10-16 424/week @ 2025-10-23 994/week @ 2025-10-30 592/week @ 2025-11-06 739/week @ 2025-11-13 1214/week @ 2025-11-20 1250/week @ 2025-11-27 1152/week @ 2025-12-04 1526/week @ 2025-12-11 2005/week @ 2025-12-18 734/week @ 2025-12-25 442/week @ 2026-01-01 677/week @ 2026-01-08 474/week @ 2026-01-15 818/week @ 2026-01-22

2,526 downloads per month
Used in 10 crates (via axplat)

GPL-3.0-or-later OR Apache-2…

5KB
51 lines

handler_table

Crates.io Docs.rs CI

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

No runtime deps