3个版本
使用旧Rust 2015
0.1.2 | 2016年5月14日 |
---|---|
0.1.1 | 2015年5月28日 |
0.1.0 | 2015年5月28日 |
在模板引擎中排名第436
每月下载22次
32KB
606 行
rust-uritemplate
rust-uritemplate
是RFC6570 - URI模板的Rust实现,可以处理URI模板,包括根据规范指定的第4级模板。它通过了uritemplate-test测试套件中的所有测试。
基本用法
变量设置可以链式进行,以编写清晰、简洁的代码。
let uri = UriTemplate::new("/view/{object:1}/{/object,names}{?query*}")
.set("object", "lakes")
.set("names", &["Erie", "Superior", "Ontario"])
.set("query", &[("size", "15"), ("lang", "en")])
.build();
assert_eq!(uri, "/view/l/lakes/Erie,Superior,Ontario?size=15&lang=en");
无法将变量设置为“undefined”的值。相反,如果您已经设置了变量,只需简单地删除该变量即可。
let mut t = UriTemplate::new("{hello}");
t.set("hello", "Hello World!");
assert_eq!(t.build(), "Hello%20World%21");
t.delete("hello");
assert_eq!(t.build(), "");
delete
函数如果变量存在则返回true
,否则返回false
。
支持类型
任何实现了IntoTemplateVar
的类型都可以设置为UriTemplate变量值。默认情况下,为每种变量类型提供了以下实现
- 标量值:
String
,&str
- 列表:
Vec<String>
,&[String]
,&[str]
- 关联数组:
Vec<(String, String)>
,&[(String, String)]
,&[(&str, &str)]
,&HashMap<String, String>
此外,您可以为您的类型实现 IntoTemplateVar
。查看 IntoTemplateVar
的文档,了解其工作原理。
依赖关系
~3.5MB
~75K SLoC