#uri #validation #lib #parser #rfc6570

rfc6570-level-2

一个库,用于验证和将字符串作为RFC6570合规URI(至第2级)进行处理

4个版本 (稳定版)

1.2.0 2021年1月24日
1.1.0 2021年1月23日
1.0.0 2021年1月23日
0.1.0 2021年1月23日

#2598解析器实现

MIT 协议

54KB
1K SLoC

RFC6570 Level 2 - Rust

概述

一个Rust库,用于验证和将字符串作为RFC6570合规URI(至第2级)进行处理。

docs.io documentation crates.io version crates.io downloads Gitlab pipeline status Gitlab code coverage Lines of code Dependents License

版本控制

本项目从v1.0.0开始遵循语义版本控制原则

仓库信息

此仓库位于GitLab.com

使用方法

要使用此库,请使用相关字符串实例化一个UriTemplate。从这里,如果只需要验证输入字符串,则可以将结果“丢弃”,或者可以使用expressions()variables()检索包含的表达式或变量列表。最后,可以通过调用expand()并传递变量和值的HashMap<&str, &str>来扩展URI模板。

use rfc6570_level_2::UriTemplate;

let template = UriTemplate::new("https://example.com/{resource}/{+id}{#field}")?;

// What variables are available?
let variables: Vec<&str> = template.variables().collect();
assert_eq!(variables, vec!["resource", "id", "field"]);

let var_map = [
    ("resource", "user"),
    ("id", "5"),
    ("field", "email"),
].iter().cloned().collect();

// Expand the template
let uri = template.expand(&var_map);
assert_eq!(uri, "https://example.com/user/5#email");

依赖项

~2.5MB
~56K SLoC