[][src]Struct iri_string::types::AbsoluteIriStr

#[repr(transparent)]
pub struct AbsoluteIriStr(_);

A borrowed slice of an absolute IRI without fragment part.

This corresponds to absolute-IRI rule in RFC 3987. This is scheme ":" ihier-part [ "?" iquery ]. In other words, this is IriStr without fragment part.

If you want to accept fragment part, use IriStr.

Methods

impl AbsoluteIriStr[src]

pub fn new(s: &str) -> Result<&Self, Error>[src]

Creates a new &AbsoluteIriStr.

Examples

assert!(AbsoluteIriStr::new("https://example.com/foo?bar=baz").is_ok());
assert!(AbsoluteIriStr::new("foo:bar").is_ok());

// Relative IRI is not allowed.
assert!(AbsoluteIriStr::new("foo/bar").is_err());
assert!(AbsoluteIriStr::new("/foo/bar").is_err());
assert!(AbsoluteIriStr::new("//foo/bar").is_err());
// Fragment part is not allowed.
assert!(AbsoluteIriStr::new("https://example.com/foo?bar=baz#qux").is_err());
// > When authority is not present, the path cannot begin with two slash characters ("//").
// >
// > --- [RFC 3986 section 3](https://tools.ietf.org/html/rfc3986#section-3)
assert!(AbsoluteIriStr::new("foo:////").is_err());

pub fn as_str(&self) -> &str[src]

Returns &str.

Methods from Deref<Target = IriStr>

pub fn to_absolute_and_fragment(
    &self
) -> (&AbsoluteIriStr, Option<&IriFragmentStr>)
[src]

Splits the IRI into absolute IRI part and fragment part.

A leading # character is truncated if the fragment part exists.

Examples

let iri = IriStr::new("foo://bar/baz?qux=quux#corge")?;
let (absolute, fragment) = iri.to_absolute_and_fragment();
let fragment_expected = IriFragmentStr::new("corge")?;
assert_eq!(absolute, "foo://bar/baz?qux=quux");
assert_eq!(fragment, Some(fragment_expected));
let iri = IriStr::new("foo://bar/baz?qux=quux#")?;
let (absolute, fragment) = iri.to_absolute_and_fragment();
let fragment_expected = IriFragmentStr::new("")?;
assert_eq!(absolute, "foo://bar/baz?qux=quux");
assert_eq!(fragment, Some(fragment_expected));
let iri = IriStr::new("foo://bar/baz?qux=quux")?;
let (absolute, fragment) = iri.to_absolute_and_fragment();
assert_eq!(absolute, "foo://bar/baz?qux=quux");
assert_eq!(fragment, None);

pub fn to_absolute(&self) -> &AbsoluteIriStr[src]

Strips the fragment part if exists, and returns &AbsoluteIriStr.

Examples

let iri = IriStr::new("foo://bar/baz?qux=quux#corge")?;
assert_eq!(iri.to_absolute(), "foo://bar/baz?qux=quux");
let iri = IriStr::new("foo://bar/baz?qux=quux")?;
assert_eq!(iri.to_absolute(), "foo://bar/baz?qux=quux");

pub fn as_str(&self) -> &str[src]

Returns &str.

Trait Implementations

impl AsRef<str> for AbsoluteIriStr where
    str: AsRef<str>, 

impl AsRef<AbsoluteIriStr> for AbsoluteIriStr

impl AsRef<AbsoluteIriStr> for AbsoluteIriString

impl AsRef<IriStr> for AbsoluteIriStr[src]

impl AsRef<IriReferenceStr> for AbsoluteIriStr[src]

impl<'a> From<&'a AbsoluteIriStr> for Arc<AbsoluteIriStr> where
    Arc<str>: From<&'a str>, 

impl<'a> From<&'a AbsoluteIriStr> for Box<AbsoluteIriStr> where
    Box<str>: From<&'a str>, 

impl<'a> From<&'a AbsoluteIriStr> for Rc<AbsoluteIriStr> where
    Rc<str>: From<&'a str>, 

impl<'a> From<&'a AbsoluteIriStr> for &'a IriStr[src]

impl<'a> From<&'a AbsoluteIriStr> for &'a IriReferenceStr[src]

impl<'a> Default for &'a AbsoluteIriStr where
    &'a str: Default

impl Eq for AbsoluteIriStr[src]

impl Ord for AbsoluteIriStr[src]

impl PartialEq<AbsoluteIriStr> for AbsoluteIriStr[src]

impl<'_> PartialEq<&'_ AbsoluteIriStr> for AbsoluteIriStr

impl<'_> PartialEq<AbsoluteIriStr> for &'_ AbsoluteIriStr

impl<'_> PartialEq<Cow<'_, AbsoluteIriStr>> for AbsoluteIriStr

impl<'_> PartialEq<AbsoluteIriStr> for Cow<'_, AbsoluteIriStr>

impl PartialEq<str> for AbsoluteIriStr

impl PartialEq<AbsoluteIriStr> for str

impl<'_> PartialEq<&'_ str> for AbsoluteIriStr

impl<'_> PartialEq<AbsoluteIriStr> for &'_ str

impl<'_> PartialEq<str> for &'_ AbsoluteIriStr

impl<'_> PartialEq<&'_ AbsoluteIriStr> for str

impl<'_> PartialEq<Cow<'_, str>> for AbsoluteIriStr

impl<'_> PartialEq<AbsoluteIriStr> for Cow<'_, str>

impl<'_, '_> PartialEq<Cow<'_, str>> for &'_ AbsoluteIriStr

impl<'_, '_> PartialEq<&'_ AbsoluteIriStr> for Cow<'_, str>

impl PartialEq<AbsoluteIriStr> for AbsoluteIriString

impl PartialEq<AbsoluteIriString> for AbsoluteIriStr

impl<'_> PartialEq<&'_ AbsoluteIriStr> for AbsoluteIriString

impl<'_> PartialEq<AbsoluteIriString> for &'_ AbsoluteIriStr

impl PartialEq<IriStr> for AbsoluteIriStr[src]

impl PartialEq<AbsoluteIriStr> for IriStr[src]

impl<'_> PartialEq<&'_ IriStr> for AbsoluteIriStr[src]

impl<'_> PartialEq<AbsoluteIriStr> for &'_ IriStr[src]

impl PartialEq<IriString> for AbsoluteIriStr[src]

impl PartialEq<AbsoluteIriStr> for IriString[src]

impl<'_> PartialEq<Cow<'_, IriStr>> for AbsoluteIriStr[src]

impl<'_> PartialEq<AbsoluteIriStr> for Cow<'_, IriStr>[src]

impl<'_> PartialEq<IriStr> for &'_ AbsoluteIriStr[src]

impl<'_> PartialEq<&'_ AbsoluteIriStr> for IriStr[src]

impl<'_> PartialEq<IriString> for &'_ AbsoluteIriStr[src]

impl<'_> PartialEq<&'_ AbsoluteIriStr> for IriString[src]

impl<'_, '_> PartialEq<Cow<'_, IriStr>> for &'_ AbsoluteIriStr[src]

impl<'_, '_> PartialEq<&'_ AbsoluteIriStr> for Cow<'_, IriStr>[src]

impl PartialEq<IriReferenceStr> for AbsoluteIriStr[src]

impl PartialEq<AbsoluteIriStr> for IriReferenceStr[src]

impl<'_> PartialEq<&'_ IriReferenceStr> for AbsoluteIriStr[src]

impl<'_> PartialEq<AbsoluteIriStr> for &'_ IriReferenceStr[src]

impl PartialEq<IriReferenceString> for AbsoluteIriStr[src]

impl PartialEq<AbsoluteIriStr> for IriReferenceString[src]

impl<'_> PartialEq<Cow<'_, IriReferenceStr>> for AbsoluteIriStr[src]

impl<'_> PartialEq<AbsoluteIriStr> for Cow<'_, IriReferenceStr>[src]

impl<'_> PartialEq<IriReferenceStr> for &'_ AbsoluteIriStr[src]

impl<'_> PartialEq<&'_ AbsoluteIriStr> for IriReferenceStr[src]

impl<'_> PartialEq<IriReferenceString> for &'_ AbsoluteIriStr[src]

impl<'_> PartialEq<&'_ AbsoluteIriStr> for IriReferenceString[src]

impl<'_, '_> PartialEq<Cow<'_, IriReferenceStr>> for &'_ AbsoluteIriStr[src]

impl<'_, '_> PartialEq<&'_ AbsoluteIriStr> for Cow<'_, IriReferenceStr>[src]

impl PartialOrd<AbsoluteIriStr> for AbsoluteIriStr[src]

impl<'_> PartialOrd<&'_ AbsoluteIriStr> for AbsoluteIriStr

impl<'_> PartialOrd<AbsoluteIriStr> for &'_ AbsoluteIriStr

impl<'_> PartialOrd<Cow<'_, AbsoluteIriStr>> for AbsoluteIriStr

impl<'_> PartialOrd<AbsoluteIriStr> for Cow<'_, AbsoluteIriStr>

impl PartialOrd<str> for AbsoluteIriStr

impl PartialOrd<AbsoluteIriStr> for str

impl<'_> PartialOrd<&'_ str> for AbsoluteIriStr

impl<'_> PartialOrd<AbsoluteIriStr> for &'_ str

impl<'_> PartialOrd<str> for &'_ AbsoluteIriStr

impl<'_> PartialOrd<&'_ AbsoluteIriStr> for str

impl<'_> PartialOrd<Cow<'_, str>> for AbsoluteIriStr

impl<'_> PartialOrd<AbsoluteIriStr> for Cow<'_, str>

impl<'_, '_> PartialOrd<Cow<'_, str>> for &'_ AbsoluteIriStr

impl<'_, '_> PartialOrd<&'_ AbsoluteIriStr> for Cow<'_, str>

impl PartialOrd<AbsoluteIriStr> for AbsoluteIriString

impl PartialOrd<AbsoluteIriString> for AbsoluteIriStr

impl<'_> PartialOrd<&'_ AbsoluteIriStr> for AbsoluteIriString

impl<'_> PartialOrd<AbsoluteIriString> for &'_ AbsoluteIriStr

impl PartialOrd<IriStr> for AbsoluteIriStr[src]

impl PartialOrd<AbsoluteIriStr> for IriStr[src]

impl<'_> PartialOrd<&'_ IriStr> for AbsoluteIriStr[src]

impl<'_> PartialOrd<AbsoluteIriStr> for &'_ IriStr[src]

impl PartialOrd<IriString> for AbsoluteIriStr[src]

impl PartialOrd<AbsoluteIriStr> for IriString[src]

impl<'_> PartialOrd<Cow<'_, IriStr>> for AbsoluteIriStr[src]

impl<'_> PartialOrd<AbsoluteIriStr> for Cow<'_, IriStr>[src]

impl<'_> PartialOrd<IriStr> for &'_ AbsoluteIriStr[src]

impl<'_> PartialOrd<&'_ AbsoluteIriStr> for IriStr[src]

impl<'_> PartialOrd<IriString> for &'_ AbsoluteIriStr[src]

impl<'_> PartialOrd<&'_ AbsoluteIriStr> for IriString[src]

impl<'_, '_> PartialOrd<Cow<'_, IriStr>> for &'_ AbsoluteIriStr[src]

impl<'_, '_> PartialOrd<&'_ AbsoluteIriStr> for Cow<'_, IriStr>[src]

impl PartialOrd<IriReferenceStr> for AbsoluteIriStr[src]

impl PartialOrd<AbsoluteIriStr> for IriReferenceStr[src]

impl<'_> PartialOrd<&'_ IriReferenceStr> for AbsoluteIriStr[src]

impl<'_> PartialOrd<AbsoluteIriStr> for &'_ IriReferenceStr[src]

impl PartialOrd<IriReferenceString> for AbsoluteIriStr[src]

impl PartialOrd<AbsoluteIriStr> for IriReferenceString[src]

impl<'_> PartialOrd<Cow<'_, IriReferenceStr>> for AbsoluteIriStr[src]

impl<'_> PartialOrd<AbsoluteIriStr> for Cow<'_, IriReferenceStr>[src]

impl<'_> PartialOrd<IriReferenceStr> for &'_ AbsoluteIriStr[src]

impl<'_> PartialOrd<&'_ AbsoluteIriStr> for IriReferenceStr[src]

impl<'_> PartialOrd<IriReferenceString> for &'_ AbsoluteIriStr[src]

impl<'_> PartialOrd<&'_ AbsoluteIriStr> for IriReferenceString[src]

impl<'_, '_> PartialOrd<Cow<'_, IriReferenceStr>> for &'_ AbsoluteIriStr[src]

impl<'_, '_> PartialOrd<&'_ AbsoluteIriStr> for Cow<'_, IriReferenceStr>[src]

impl ToOwned for AbsoluteIriStr where
    String: From<&'a str>, 

type Owned = AbsoluteIriString

The resulting type after obtaining ownership.

impl Display for AbsoluteIriStr where
    str: Display

impl Debug for AbsoluteIriStr[src]

impl<'a> TryFrom<&'a str> for &'a AbsoluteIriStr

type Error = Error

The type returned in the event of a conversion error.

impl<'a> TryFrom<&'a IriStr> for &'a AbsoluteIriStr[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a> TryFrom<&'a IriReferenceStr> for &'a AbsoluteIriStr[src]

type Error = Error

The type returned in the event of a conversion error.

impl Deref for AbsoluteIriStr[src]

type Target = IriStr

The resulting type after dereferencing.

impl Hash for AbsoluteIriStr[src]

impl Borrow<AbsoluteIriStr> for AbsoluteIriString

impl Serialize for AbsoluteIriStr[src]

impl<'de: 'a, 'a> Deserialize<'de> for &'a AbsoluteIriStr[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]