4 releases (stable)
1.2.0 | Jan 24, 2021 |
---|---|
1.1.0 | Jan 23, 2021 |
1.0.0 | Jan 23, 2021 |
0.1.0 | Jan 23, 2021 |
#2657 in Parser implementations
54KB
1K
SLoC
RFC6570 Level 2 - Rust
Overview
A Rust library for validating and processing strings as RFC6570-compliant URIs (up to level 2).
Versioning
This project follows Semantic Versioning principals starting with v1.0.0
Repository information
This repository is located on GitLab.com.
Usage
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");
Dependencies
~2.5MB
~56K SLoC