iri_string::types

Type Alias IriRelativeString

source
pub type IriRelativeString = RiRelativeString<IriSpec>;
Available on crate feature alloc only.
Expand description

A type alias for RiRelativeString<IriSpec>.

Aliased Type§

struct IriRelativeString { /* private fields */ }

Implementations§

source§

impl IriRelativeString

Conversion from an IRI into a URI.

source

pub fn encode_to_uri_inline(&mut self)

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

After the encode, the IRI is also a valid URI.

If you want a new URI string rather than modifying the IRI string, or if you need more precise control over memory allocation and buffer handling, use encode_to_uri method.

§Panics

Panics if the memory allocation failed.

§Examples
#[cfg(feature = "alloc")] {
use iri_string::types::IriRelativeString;

let mut iri = IriRelativeString::try_from("../?alpha=\u{03B1}")?;
iri.encode_to_uri_inline();
assert_eq!(iri, "../?alpha=%CE%B1");
source

pub fn try_encode_to_uri_inline(&mut self) -> Result<(), TryReserveError>

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

After the encode, the IRI is also a valid URI.

If you want a new URI string rather than modifying the IRI string, or if you need more precise control over memory allocation and buffer handling, use encode_to_uri method.

§Examples
#[cfg(feature = "alloc")] {
use iri_string::types::IriRelativeString;

let mut iri = IriRelativeString::try_from("../?alpha=\u{03B1}")?;
iri.try_encode_to_uri_inline()
    .expect("failed to allocate memory");
assert_eq!(iri, "../?alpha=%CE%B1");
source

pub fn encode_into_uri(self) -> UriRelativeString

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

If you want a new URI string rather than modifying the IRI string, or if you need more precise control over memory allocation and buffer handling, use encode_to_uri method.

§Examples
#[cfg(feature = "alloc")] {
use iri_string::types::{IriRelativeString, UriRelativeString};

let iri = IriRelativeString::try_from("../?alpha=\u{03B1}")?;
// Type annotation here is not necessary.
let uri: UriRelativeString = iri.encode_into_uri();
assert_eq!(uri, "../?alpha=%CE%B1");
source

pub fn try_encode_into_uri(self) -> Result<UriRelativeString, TryReserveError>

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

If you want a new URI string rather than modifying the IRI string, or if you need more precise control over memory allocation and buffer handling, use encode_to_uri method.

§Examples
#[cfg(feature = "alloc")] {
use iri_string::types::{IriRelativeString, UriRelativeString};

let iri = IriRelativeString::try_from("../?alpha=\u{03B1}")?;
// Type annotation here is not necessary.
let uri: UriRelativeString = iri.try_encode_into_uri()
    .expect("failed to allocate memory");
assert_eq!(uri, "../?alpha=%CE%B1");
source

pub fn try_into_uri(self) -> Result<UriRelativeString, IriRelativeString>

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

§Examples
use iri_string::types::{IriRelativeString, UriRelativeString};

let ascii_iri = IriRelativeString::try_from("../?alpha=%CE%B1")?;
assert_eq!(
    ascii_iri.try_into_uri().map(|uri| uri.to_string()),
    Ok("../?alpha=%CE%B1".to_string())
);

let nonascii_iri = IriRelativeString::try_from("../?alpha=\u{03B1}")?;
assert_eq!(
    nonascii_iri.try_into_uri().map_err(|iri| iri.to_string()),
    Err("../?alpha=\u{03B1}".to_string())
);

Trait Implementations§

source§

impl From<RiRelativeString<UriSpec>> for IriRelativeString

source§

fn from(uri: UriRelativeString) -> Self

Converts to this type from the input type.