3个不稳定版本
0.2.1 | 2022年5月11日 |
---|---|
0.2.0 | 2022年5月4日 |
0.1.0 | 2022年4月28日 |
#16 in #http-router
15KB
355 行
pathscheme
一个支持描述和匹配通用路径方案的Rust包。
许可
本程序在MIT许可下分发。
lib.rs
:
基本路径匹配语言。
示例
路径方案可以匹配文本路径
assert!("/users/new".parse::<PathScheme>()
.unwrap()
.matches("/users/new")
.unwrap()
.is_empty());
文本路径匹配是区分大小写的
assert!("/users/new".parse::<PathScheme>()
.unwrap()
.matches("/users/New")
.is_none());
或者它们可以捕获路径段
let matches = "/users/:id".parse::<PathScheme>()
.unwrap()
.matches("/users/olix0r")
.unwrap();
assert!(matches.get("id").unwrap() == "olix0r");
路径方案必须匹配整个路径
assert!("/users/:id".parse::<PathScheme>()
.unwrap()
.matches("/users/olix0r/dogs")
.is_none());
可以使用**
通配符来匹配路径前缀
assert!("/users/:id/**".parse::<PathScheme>()
.unwrap()
.matches("/users/olix0r")
.is_some());
assert!("/users/:id/**".parse::<PathScheme>()
.unwrap()
.matches("/users/olix0r/dogs")
.is_some());
依赖
~1.2–2MB
~37K SLoC