Crate uritemplate [−] [src]
rust-uritemplate
is a Rust implementation of
RFC6570 - URI Template that can
process URI Templates up to and including ones designated as Level 4 by the
specification. It passes all of the tests in the
uritemplate-test test
suite.
Basic Usage
Variable setting can be chained for nice, clean code.
extern crate uritemplate; use uritemplate::UriTemplate; 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");
It is not possible to set a variable to the value "undefined". Instead, simply delete the variable if you have already set it.
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(), "");
The delete
function returns true
if the variable existed and false
otherwise.
Supported Types
Any type that implements IntoTemplateVar
can be set as the value of a
UriTemplate
variable. The following implementations are provided by
default for each type of variable:
- Scalar Values:
String
,&str
- Lists:
Vec<String>
,&[String]
,&[str]
- Associative Arrays:
Vec<(String, String)>
,&[(String, String)]
,&[(&str, &str)]
,&HashMap<String, String>
In addition, you can implement IntoTemplateVar
for your own types. View the
documentation for IntoTemplateVar
for information on how that works.
Structs
UriTemplate |
The main struct that processes and builds URI Templates. |
Enums
TemplateVar |
TemplateVar represents the value of a template variable, which can be a scalar (a simple string), a list of strings, or an associative array of strings. |
Traits
IntoTemplateVar |
IntoTemplateVar represents any type that can be converted into a TemplateVar
for use as the value of a template variable, such as a |