iri-rs 3.3.2

Allocation-conscious URI/IRI (RFC 3986/3987) parser, resolver and normalizer with borrowed and owned types, optional compile-time macros and vocabulary enums.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
use iri_rs::{Iri, IriRefBuf};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let base_iri = Iri::parse("http://a/b/c/d;p?q")?;
    let mut iri_ref = IriRefBuf::new("g;x=1/../y")?;

    let resolved = iri_ref.resolved(&base_iri)?;
    assert_eq!(resolved, "http://a/b/c/y");

    iri_ref.resolve(&base_iri)?;
    assert_eq!(iri_ref, "http://a/b/c/y");
    Ok(())
}