4个版本
0.1.3 | 2019年8月29日 |
---|---|
0.1.2 | 2019年8月29日 |
0.1.1 | 2019年8月6日 |
0.1.0 | 2019年8月6日 |
#1661 in 算法
在bravery中使用
74KB
2K SLoC
bravery_router
快速HTTP路由器
## 安装
将以下行添加到您的Cargo.toml
bravery_router = "*"
用法
use bravery_router::{add, optimize, find, create_root_node};
fn main() {
let mut root = create_root_node();
add(&mut root, "/foo", 1);
add(&mut root, "/foobar", 2);
add(&mut root, "/users/:id", 3);
add(&mut root, "/all/*", 4);
let root = optimize(root);
let empty_vec: Vec<&str> = vec![];
let ret = find(&root, "/foo");
assert_eq!(ret.value, Some(&1));
assert_eq!(ret.params, empty_vec);
println!("/foo, {:?}, {:?}", ret.value, ret.params);
let ret = find(&root, "/foobar");
assert_eq!(ret.value, Some(&2));
assert_eq!(ret.params, empty_vec);
println!("/foobar, {:?}, {:?}", ret.value, ret.params);
let ret = find(&root, "/users/42");
assert_eq!(ret.value, Some(&3));
assert_eq!(ret.params, vec!["42"]);
println!("/users/42, {:?}, {:?}", ret.value, ret.params);
let ret = find(&root, "/all/foo/bar");
assert_eq!(ret.value, Some(&4));
assert_eq!(ret.params, vec!["foo/bar"]);
println!("/all/foo/bar, {:?}, {:?}", ret.value, ret.params);
let ret = find(&root, "/unknwon");
assert_eq!(ret.value, None);
assert_eq!(ret.params, empty_vec);
println!("/unknwon, {:?}, {:?}", ret.value, ret.params);
println!("Done!");
}
贡献
欢迎所有贡献:打开一个问题并提交一个PR!
许可协议
查看许可文件
依赖
~2.1–3MB
~55K SLoC