[−][src]Crate path_tree
path-tree is a lightweight high performance HTTP request router for Rust.
Examples
use path_tree::PathTree; let mut tree = PathTree::new(); tree.insert("/", 0); tree.insert("/users/:id", 1) .insert("/users/:user_id/*", 2) .insert("/users/:user_id/repos/:id", 3) .insert("/*any", 4); let r = tree.find("/").unwrap(); assert_eq!(r.0, &0); assert_eq!(r.1, vec![]); let r = tree.find("/users/31415926").unwrap(); assert_eq!(r.0, &1); assert_eq!(r.1, vec![("id", "31415926")]); let r = tree.find("/users/31415926/settings").unwrap(); assert_eq!(r.0, &2); assert_eq!(r.1, vec![("user_id", "31415926"), ("", "settings")]); let r = tree.find("/users/31415926/repos/53589793").unwrap(); assert_eq!(r.0, &3); assert_eq!(r.1, vec![("user_id", "31415926"), ("id", "53589793")]); let r = tree.find("/about").unwrap(); assert_eq!(r.0, &4); assert_eq!(r.1, vec![("any", "about")]); let r = tree.find("/users/31415926/repos/53589793/branches").unwrap(); assert_eq!(r.0, &2); assert_eq!(r.1, vec![("user_id", "31415926"), ("", "repos/53589793/branches")]);
Structs
Node | A node stores kind data params indices and children nodes. |
PathTree | A path tree. |
Enums
NodeKind | The Kind of a node. |