| Crates.io | rfc6570-level-2 |
| lib.rs | rfc6570-level-2 |
| version | 1.2.0 |
| created_at | 2021-01-23 14:30:21.777827+00 |
| updated_at | 2021-01-24 09:20:45.478685+00 |
| description | A library for validating and processing strings as RFC6570-compliant URIs (up to level 2) |
| homepage | |
| repository | https://gitlab.com/Kage-Yami/rfc6570-level-2-rust |
| max_upload_size | |
| id | 345658 |
| size | 66,647 |
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.
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");