Crates.io | oni-comb-uri-rs |
lib.rs | oni-comb-uri-rs |
version | |
source | src |
created_at | 2021-11-15 00:47:13.48129 |
updated_at | 2024-12-13 00:13:59.229539 |
description | A Rust crate for uri parser |
homepage | |
repository | https://github.com/j5ik2o/oni-comb-rs |
max_upload_size | |
id | 481927 |
Cargo.toml error: | TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
A Rust crate for URI.
This crate is based on the following specifications.
RFC3986: Uniform Resource Identifier (URI): Generic Syntax
use oni_comb_uri::uri::Uri;
let s = "http://user1:pass1@localhost:8080/example?key1=value1&key2=value2&key1=value2#f1";
match Uri::parse(s) {
Ok(uri) => {
uri.schema().into_iter().for_each(|s| assert_eq!(s.to_string(), "http"));
uri
.host_name()
.into_iter()
.for_each(|hn| assert_eq!(hn.to_string(), "localhost"));
uri.port().into_iter().for_each(|p| assert_eq!(p, 8080));
uri.user_info().into_iter().for_each(|ui| {
assert_eq!(ui.user_name(), "user1");
assert_eq!(ui.password(), Some("pass1"));
});
uri
.path()
.into_iter()
.for_each(|p| assert_eq!(p.to_string(), "/example"));
uri.query().into_iter().for_each(|q| {
q.get_param("key1".to_string()).into_iter().for_each(|v| {
assert_eq!(v.len(), 2);
assert_eq!(v[0], "value1");
assert_eq!(v[1], "value2");
});
q.get_param("key2".to_string()).into_iter().for_each(|v| {
assert_eq!(v.len(), 1);
assert_eq!(v[0], "value2");
});
});
uri.fragment().into_iter().for_each(|f| assert_eq!(f, "f1"));
println!("{:?}", uri);
}
Err(e) => println!("{:?}", e),
}