pub type IriAbsoluteStr = RiAbsoluteStr<IriSpec>;
Expand description
A type alias for RiAbsoluteStr
<
IriSpec
>
.
Aliased Type§
struct IriAbsoluteStr { /* private fields */ }
Implementations§
source§impl IriAbsoluteStr
impl IriAbsoluteStr
Conversion from an IRI into a URI.
sourcepub fn encode_to_uri(&self) -> MappedToUri<'_, Self>
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::{IriAbsoluteStr, UriAbsoluteString};
let iri = IriAbsoluteStr::new("http://example.com/?alpha=\u{03B1}")?;
// Type annotation here is not necessary.
let uri: UriAbsoluteString = iri.encode_to_uri().to_dedicated_string();
assert_eq!(uri, "http://example.com/?alpha=%CE%B1");
sourcepub fn as_uri(&self) -> Option<&UriAbsoluteStr>
pub fn as_uri(&self) -> Option<&UriAbsoluteStr>
Converts an IRI into a URI without modification, if possible.
This is semantically equivalent to
UriAbsoluteStr::new(self.as_str()).ok()
.
§Examples
use iri_string::types::{IriAbsoluteStr, UriAbsoluteStr};
let ascii_iri = IriAbsoluteStr::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 = IriAbsoluteStr::new("http://example.com/?alpha=\u{03B1}")?;
assert_eq!(nonascii_iri.as_uri(), None);