[][src]Struct iri_string::types::RiAbsoluteStr

#[repr(transparent)]
pub struct RiAbsoluteStr<S> { /* fields omitted */ }

A borrowed slice of an absolute IRI without fragment part.

This corresponds to absolute-IRI rule in RFC 3987 (and absolute-URI rule in RFC 3986). In other words, this is RiStr without fragment part.

If you want to accept fragment part, use RiStr.

Valid values

This type can have an absolute IRI without fragment part.

assert!(IriAbsoluteStr::new("https://example.com/foo?bar=baz").is_ok());
assert!(IriAbsoluteStr::new("foo:bar").is_ok());
// Scheme `foo` and empty path.
assert!(IriAbsoluteStr::new("foo:").is_ok());
// `foo://.../` below are all allowed. See the crate documentation for detail.
assert!(IriAbsoluteStr::new("foo:/").is_ok());
assert!(IriAbsoluteStr::new("foo://").is_ok());
assert!(IriAbsoluteStr::new("foo:///").is_ok());
assert!(IriAbsoluteStr::new("foo:////").is_ok());
assert!(IriAbsoluteStr::new("foo://///").is_ok());

Relative IRI is not allowed.

// This is relative path.
assert!(IriAbsoluteStr::new("foo/bar").is_err());
// `/foo/bar` is an absolute path, but it is authority-relative.
assert!(IriAbsoluteStr::new("/foo/bar").is_err());
// `//foo/bar` is termed "network-path reference",
// or usually called "protocol-relative reference".
assert!(IriAbsoluteStr::new("//foo/bar").is_err());
// Empty string is not a valid absolute IRI.
assert!(IriAbsoluteStr::new("").is_err());

Fragment part (such as trailing #foo) is not allowed.

// Fragment part is not allowed.
assert!(IriAbsoluteStr::new("https://example.com/foo?bar=baz#qux").is_err());

Some characters and sequences cannot used in an absolute IRI.

// `<` and `>` cannot directly appear in an absolute IRI.
assert!(IriAbsoluteStr::new("<not allowed>").is_err());
// Broken percent encoding cannot appear in an absolute IRI.
assert!(IriAbsoluteStr::new("%").is_err());
assert!(IriAbsoluteStr::new("%GG").is_err());

Methods

impl<S: Spec> RiAbsoluteStr<S>[src]

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

Creates a new string.

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

Returns &str.

pub fn len(&self) -> usize[src]

Returns the string length.

pub fn is_empty(&self) -> bool[src]

Returns whether the string is empty.

Trait Implementations

impl AsRef<RiAbsoluteStr<IriSpec>> for RiAbsoluteStr<UriSpec>[src]

impl AsRef<RiAbsoluteStr<IriSpec>> for RiAbsoluteString<UriSpec>[src]

impl<S: Spec> AsRef<RiAbsoluteStr<S>> for RiAbsoluteStr<S>[src]

impl<S: Spec> AsRef<RiAbsoluteStr<S>> for RiAbsoluteString<S>[src]

impl<S: Spec> AsRef<RiReferenceStr<S>> for RiAbsoluteStr<S>[src]

impl<S: Spec> AsRef<RiStr<S>> for RiAbsoluteStr<S>[src]

impl<S: Spec> AsRef<str> for RiAbsoluteStr<S>[src]

impl<S: Spec> Borrow<RiAbsoluteStr<S>> for RiAbsoluteString<S>[src]

impl<S: Spec> Debug for RiAbsoluteStr<S>[src]

impl<'de: 'a, 'a, S: 'de + Spec> Deserialize<'de> for &'a RiAbsoluteStr<S>[src]

impl<S: Spec> Display for RiAbsoluteStr<S>[src]

impl<S: Spec> Eq for RiAbsoluteStr<S>[src]

impl<'_, S: Spec> From<&'_ RiAbsoluteStr<S>> for Arc<RiAbsoluteStr<S>>[src]

impl<'_, S: Spec> From<&'_ RiAbsoluteStr<S>> for Box<RiAbsoluteStr<S>>[src]

impl<'_, S: Spec> From<&'_ RiAbsoluteStr<S>> for Rc<RiAbsoluteStr<S>>[src]

impl<'_, S: Spec> From<&'_ RiAbsoluteStr<S>> for RiAbsoluteString<S>[src]

impl<'a, S: Spec> From<&'a RiAbsoluteStr<S>> for &'a str[src]

impl<'a, S: Spec> From<&'a RiAbsoluteStr<S>> for &'a RiStr<S>[src]

impl<'a, S: Spec> From<&'a RiAbsoluteStr<S>> for &'a RiReferenceStr<S>[src]

impl<S: Spec> Hash for RiAbsoluteStr<S>[src]

impl<S: Spec> Ord for RiAbsoluteStr<S>[src]

impl<'_, S: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for str[src]

impl<'_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for RiAbsoluteStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for RiReferenceString<T>[src]

impl<'_, '_, S: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for Cow<'_, str>[src]

impl<'_, '_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for Cow<'_, RiAbsoluteStr<T>>[src]

impl<'_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for RiAbsoluteString<T>[src]

impl<'_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for RiStr<T>[src]

impl<'_, '_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for Cow<'_, RiStr<T>>[src]

impl<'_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for RiString<T>[src]

impl<'_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for RiReferenceStr<T>[src]

impl<'_, '_, S: Spec, T: Spec> PartialEq<&'_ RiAbsoluteStr<S>> for Cow<'_, RiReferenceStr<T>>[src]

impl<'_, S: Spec, T: Spec> PartialEq<&'_ RiReferenceStr<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialEq<&'_ RiStr<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec> PartialEq<&'_ str> for RiAbsoluteStr<S>[src]

impl<'_, '_, S: Spec, T: Spec> PartialEq<Cow<'_, RiAbsoluteStr<T>>> for &'_ RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialEq<Cow<'_, RiReferenceStr<T>>> for RiAbsoluteStr<S>[src]

impl<'_, '_, S: Spec, T: Spec> PartialEq<Cow<'_, RiReferenceStr<T>>> for &'_ RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialEq<Cow<'_, RiStr<T>>> for RiAbsoluteStr<S>[src]

impl<'_, '_, S: Spec, T: Spec> PartialEq<Cow<'_, RiStr<T>>> for &'_ RiAbsoluteStr<S>[src]

impl<'_, S: Spec> PartialEq<Cow<'_, str>> for RiAbsoluteStr<S>[src]

impl<'_, '_, S: Spec> PartialEq<Cow<'_, str>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec> PartialEq<RiAbsoluteStr<S>> for RiAbsoluteStr<S>[src]

impl<S: Spec> PartialEq<RiAbsoluteStr<S>> for str[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for &'_ RiReferenceStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for Cow<'_, RiReferenceStr<T>>[src]

impl<S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for RiReferenceString<T>[src]

impl<'_, S: Spec> PartialEq<RiAbsoluteStr<S>> for &'_ str[src]

impl<'_, S: Spec> PartialEq<RiAbsoluteStr<S>> for Cow<'_, str>[src]

impl<S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for RiAbsoluteString<T>[src]

impl<S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for RiStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for &'_ RiStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for Cow<'_, RiStr<T>>[src]

impl<S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for RiString<T>[src]

impl<S: Spec, T: Spec> PartialEq<RiAbsoluteStr<S>> for RiReferenceStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiAbsoluteStr<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialEq<RiAbsoluteString<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiAbsoluteString<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialEq<RiReferenceStr<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiReferenceStr<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialEq<RiReferenceString<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiReferenceString<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialEq<RiStr<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiStr<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialEq<RiString<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialEq<RiString<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec> PartialEq<str> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec> PartialEq<str> for &'_ RiAbsoluteStr<S>[src]

impl<'_, S: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for str[src]

impl<'_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for RiAbsoluteStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for RiReferenceString<T>[src]

impl<'_, '_, S: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for Cow<'_, str>[src]

impl<'_, '_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for Cow<'_, RiAbsoluteStr<T>>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for RiAbsoluteString<T>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for RiStr<T>[src]

impl<'_, '_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for Cow<'_, RiStr<T>>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for RiString<T>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for RiReferenceStr<T>[src]

impl<'_, '_, S: Spec, T: Spec> PartialOrd<&'_ RiAbsoluteStr<S>> for Cow<'_, RiReferenceStr<T>>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<&'_ RiReferenceStr<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<&'_ RiStr<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec> PartialOrd<&'_ str> for RiAbsoluteStr<S>[src]

impl<'_, '_, S: Spec, T: Spec> PartialOrd<Cow<'_, RiAbsoluteStr<T>>> for &'_ RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<Cow<'_, RiReferenceStr<T>>> for RiAbsoluteStr<S>[src]

impl<'_, '_, S: Spec, T: Spec> PartialOrd<Cow<'_, RiReferenceStr<T>>> for &'_ RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<Cow<'_, RiStr<T>>> for RiAbsoluteStr<S>[src]

impl<'_, '_, S: Spec, T: Spec> PartialOrd<Cow<'_, RiStr<T>>> for &'_ RiAbsoluteStr<S>[src]

impl<'_, S: Spec> PartialOrd<Cow<'_, str>> for RiAbsoluteStr<S>[src]

impl<'_, '_, S: Spec> PartialOrd<Cow<'_, str>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec> PartialOrd<RiAbsoluteStr<S>> for RiAbsoluteStr<S>[src]

impl<S: Spec> PartialOrd<RiAbsoluteStr<S>> for str[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for &'_ RiReferenceStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for Cow<'_, RiReferenceStr<T>>[src]

impl<S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for RiReferenceString<T>[src]

impl<'_, S: Spec> PartialOrd<RiAbsoluteStr<S>> for &'_ str[src]

impl<'_, S: Spec> PartialOrd<RiAbsoluteStr<S>> for Cow<'_, str>[src]

impl<S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for RiAbsoluteString<T>[src]

impl<S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for RiStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for &'_ RiStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for Cow<'_, RiStr<T>>[src]

impl<S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for RiString<T>[src]

impl<S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<S>> for RiReferenceStr<T>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiAbsoluteStr<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialOrd<RiAbsoluteString<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiAbsoluteString<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialOrd<RiReferenceStr<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiReferenceStr<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialOrd<RiReferenceString<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiReferenceString<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialOrd<RiStr<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiStr<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec, T: Spec> PartialOrd<RiString<T>> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec, T: Spec> PartialOrd<RiString<T>> for &'_ RiAbsoluteStr<S>[src]

impl<S: Spec> PartialOrd<str> for RiAbsoluteStr<S>[src]

impl<'_, S: Spec> PartialOrd<str> for &'_ RiAbsoluteStr<S>[src]

impl<S> Serialize for RiAbsoluteStr<S>[src]

impl<S: Spec> ToOwned for RiAbsoluteStr<S>[src]

type Owned = RiAbsoluteString<S>

The resulting type after obtaining ownership.

impl<'a, S: Spec> TryFrom<&'a RiReferenceStr<S>> for &'a RiAbsoluteStr<S>[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a, S: Spec> TryFrom<&'a RiStr<S>> for &'a RiAbsoluteStr<S>[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a, S: Spec> TryFrom<&'a str> for &'a RiAbsoluteStr<S>[src]

type Error = Error

The type returned in the event of a conversion error.

Auto Trait Implementations

impl<S> RefUnwindSafe for RiAbsoluteStr<S>

impl<S> Send for RiAbsoluteStr<S>

impl<S> Sync for RiAbsoluteStr<S>

impl<S> Unpin for RiAbsoluteStr<S>

impl<S> UnwindSafe for RiAbsoluteStr<S>

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

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, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.