#![feature(test)] extern crate pathrouter; extern crate test; use pathrouter::{Router, TreeRouter}; #[bench] fn benchmark_nfa(b: &mut test::Bencher) { let mut router = Router::new(); router.add("/posts", "posts"); router.add("/posts/:post_id/comments/:id", "comment"); router.add("/posts/:post_id/comments", "comments"); router.add("/posts/:post_id", "post"); router.add("/comments", "comments2"); router.add("/comments/:id", "comment2"); router.add("/api/v1/self/profile", "profile"); router.add("/api/v1/*v1", "v1"); b.iter(|| { router.route("/posts"); router.route("/posts/100/comments/200"); router.route("/api/v1/self/profile"); router.route("/api/v1/user/110/profile"); }); } #[bench] fn benchmark_tree(b: &mut test::Bencher) { let mut router = TreeRouter::new(); router.add("/posts", "posts"); router.add("/posts/:post_id/comments/:id", "comment"); router.add("/posts/:post_id/comments", "comments"); router.add("/posts/:post_id", "post"); router.add("/comments", "comments2"); router.add("/comments/:id", "comment2"); router.add("/api/v1/self/profile", "profile"); router.add("/api/v1/*v1", "v1"); b.iter(|| { router.route("/posts"); router.route("/posts/100/comments/200"); router.route("/api/v1/self/profile"); router.route("/api/v1/user/110/profile"); }); }