handler_table 0.1.2

A lock-free table of event handlers
Documentation
  • Coverage
  • 100%
    7 out of 7 items documented1 out of 6 items with examples
  • Size
  • Source code size: 6.5 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 764.06 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Homepage
  • arceos-org/handler_table
    0 3 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • equation314 github:arceos-org:core

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