Macro radixmap::radix

source ·
macro_rules! radix {
    ($($path:expr => $data:expr),+ $(,)?) => { ... };
    ($($path:expr),+ $(,)?) => { ... };
}
Expand description

Macros to create RadixMap or RadixSet

§Examples

#[macro_use] extern crate radixmap;

let map = radix!{
    "/" => "/",
    "/api" => "api",
    "/api/v1" => "v1",
    "/api/v1/user" => "user1",
    "/api/v2" => "v2",
    "/api/v2/user" => "user2",
};

assert_eq!(map.get(b"/"), Some(&"/"));
assert_eq!(map.get(b"/api"), Some(&"api"));
assert_eq!(map.get(b"/api/v1"), Some(&"v1"));
assert_eq!(map.get(b"/api/v1/user"), Some(&"user1"));
assert_eq!(map.get(b"/api/v2"), Some(&"v2"));
assert_eq!(map.get(b"/api/v2/user"), Some(&"user2"));
assert_eq!(map.get(b"/api/v3"), None);
assert_eq!(map.get(b"/api/v3/user"), None);

let set = radix!{
    "/",
    "/api",
    "/api/v1",
    "/api/v1/user",
    "/api/v2",
    "/api/v2/user",
};

assert_eq!(set.contains(b"/"), true);
assert_eq!(set.contains(b"/api"), true);
assert_eq!(set.contains(b"/api/v1"), true);
assert_eq!(set.contains(b"/api/v1/user"), true);
assert_eq!(set.contains(b"/api/v2"), true);
assert_eq!(set.contains(b"/api/v2/user"), true);
assert_eq!(set.contains(b"/api/v3"), false);
assert_eq!(set.contains(b"/api/v3/user"), false);