rust-uritemplate

Build Status Cargo version License

Documentation

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.

```rust 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.

```rust 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:

In addition, you can implement IntoTemplateVar for your own types. View the documentation for IntoTemplateVar for information on how that works.