A Rust library for validating and processing strings as RFC6570-compliant URIs (up to level 2).
This project follows Semantic Versioning principals starting with v1.0.0
This repository is located on GitLab.com.
To use this library, instantiate an UriTemplate
with a relevant string. From here, the result can be "discarded" if only validation of the input string is needed, or a list of contained expressions or variables can be retrieved with expressions()
or variables()
. Finally, the URI template can be expanded by called expand()
with a HashMap<&str, &str>
of variables and values.
```rust use rfc6570level2::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(&varmap); asserteq!(uri, "https://example.com/user/5#email"); ```