iri_string::types

Type Alias IriReferenceStr

source
pub type IriReferenceStr = RiReferenceStr<IriSpec>;
Expand description

A type alias for RiReferenceStr<IriSpec>.

Aliased Type§

struct IriReferenceStr { /* private fields */ }

Implementations§

source§

impl IriReferenceStr

Conversion from an IRI into a URI.

source

pub fn encode_to_uri(&self) -> MappedToUri<'_, Self>

Percent-encodes the IRI into a valid URI that identifies the equivalent resource.

If you need more precise control over memory allocation and buffer handling, use MappedToUri type.

§Examples
use iri_string::format::ToDedicatedString;
use iri_string::types::{IriReferenceStr, UriReferenceString};

let iri = IriReferenceStr::new("http://example.com/?alpha=\u{03B1}")?;
// Type annotation here is not necessary.
let uri: UriReferenceString = iri.encode_to_uri().to_dedicated_string();
assert_eq!(uri, "http://example.com/?alpha=%CE%B1");
source

pub fn as_uri(&self) -> Option<&UriReferenceStr>

Converts an IRI into a URI without modification, if possible.

This is semantically equivalent to UriReferenceStr::new(self.as_str()).ok().

§Examples
use iri_string::types::{IriReferenceStr, UriReferenceStr};

let ascii_iri = IriReferenceStr::new("http://example.com/?alpha=%CE%B1")?;
assert_eq!(
    ascii_iri.as_uri().map(AsRef::as_ref),
    Some("http://example.com/?alpha=%CE%B1")
);

let nonascii_iri = IriReferenceStr::new("http://example.com/?alpha=\u{03B1}")?;
assert_eq!(nonascii_iri.as_uri(), None);