3个不稳定版本

0.2.1 2022年5月11日
0.2.0 2022年5月4日
0.1.0 2022年4月28日

#16 in #http-router

MIT许可

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