6 个版本
0.2.0 | 2020 年 3 月 13 日 |
---|---|
0.1.4 | 2020 年 3 月 11 日 |
2842 在 Rust 模式
每月 29 次下载
7KB
148 行
DispatchTable
一个用于在基于键的集合中存储函数的 Rust 库。
use dispatchtable::{DispatchTable, Dispatch};
fn add(params: &(isize, isize)) -> isize {
params.0 + params.1
}
fn sub(params: &(isize, isize)) -> isize {
params.0 + params.1
}
fn main() {
let mut table = DispatchTable::new();
table.insert("add", Box::new(add));
table.insert("sub", Box::new(sub));
assert_eq!(table.call(&"add", &(1, 2)), Some(3));
assert_eq!(table.call(&"sub", &(5, 2)), Some(3));
}
lib.rs
:
dispatchtable 是一个运行时基于键的集合,包含函数引用。
快速入门
use dispatchtable::{Dispatch, DispatchTable};
fn add(p: &(u8, u8)) -> u8 { p.0 + p.1 }
fn sub(p: &(u8, u8)) -> u8 { p.0 - p.1 }
fn main() {
let mut dispatchtable = DispatchTable::new();
dispatchtable.insert("add".to_string(), Box::new(add));
dispatchtable.insert("sub".to_string(), Box::new(sub));
assert_eq!(dispatchtable.call("sub", &(10, 5)), Some(5));
}