3 releases

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

#40 in No standard library

Download history 586/week @ 2025-02-15 374/week @ 2025-02-22 697/week @ 2025-03-01 1866/week @ 2025-03-08 1386/week @ 2025-03-15 1551/week @ 2025-03-22 1373/week @ 2025-03-29 1446/week @ 2025-04-05 885/week @ 2025-04-12 797/week @ 2025-04-19 651/week @ 2025-04-26 1096/week @ 2025-05-03 1618/week @ 2025-05-10 1925/week @ 2025-05-17 1930/week @ 2025-05-24 1461/week @ 2025-05-31

7,173 downloads per month

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

OSZAR »