Struct ParsedEqname

Source
pub struct ParsedEqname<'a> { /* private fields */ }
Expand description

Parsed EQName reference.

Implementations§

Source§

impl<'a> ParsedEqname<'a>

Source

pub fn from_str(s: &'a str) -> Result<Self, NameError>

Creates a new ParsedEqname<'_> from the given string slice.

§Failures

Fails if the given string is not a valid EQName.

§Examples
let nc = ParsedEqname::from_str("hello")?;
assert_eq!(nc, "hello");

let q = ParsedEqname::from_str("foo:bar")?;
assert_eq!(q, "foo:bar");

let uri_qualified = ParsedEqname::from_str("Q{foo}bar")?;
assert_eq!(uri_qualified, "Q{foo}bar");

assert!(ParsedEqname::from_str("").is_err(), "Empty string is not an EQName");
assert!(ParsedEqname::from_str("foo bar").is_err(), "Whitespace is not allowed");
assert!(ParsedEqname::from_str("foo:bar:baz").is_err(), "Two or more colons are not allowed");
assert!(ParsedEqname::from_str("0foo").is_err(), "ASCII digit at the beginning is not allowed");
Source

pub fn as_eqname(&self) -> &'a Eqname

Returns the string as &Eqname.

§Exmaples
use xml_string::names::Eqname;

let name = ParsedEqname::from_str("foo:bar")?;
assert_eq!(name, "foo:bar");

let s: &Eqname = name.as_eqname();
assert_eq!(s, "foo:bar");
Source

pub fn as_qname(&self) -> Option<&'a Qname>

Returns the string as &Qname if it is QName.

§Exmaples
use xml_string::names::Qname;

let name = ParsedEqname::from_str("foo:bar")?;
assert_eq!(name, "foo:bar");

let s: &Qname = name.as_qname()
    .expect("The string is QName");
assert_eq!(s, "foo:bar");
Source

pub fn as_uri_qualified_name(&self) -> Option<&'a UriQualifiedName>

Returns the string as &UriQualifiedName if it is URIQualifiedName.

§Exmaples
use xml_string::names::UriQualifiedName;

let name = ParsedEqname::from_str("Q{foo}bar")?;
assert_eq!(name, "Q{foo}bar");

let s: &UriQualifiedName = name.as_uri_qualified_name()
    .expect("The string is URIQualifiedName");
assert_eq!(s, "Q{foo}bar");
Source

pub fn as_str(&self) -> &'a str

Returns the string as &str.

§Exmaples
let name = ParsedEqname::from_str("hello")?;
assert_eq!(name, "hello");

let s: &str = name.as_str();
assert_eq!(s, "hello");
Source

pub fn to_variant(&self) -> EqnameVariantData<&Qname, &UriQualifiedName>

Returns the name in the type specific to the variant (i.e. Qname or UriQualifiedName).

Source

pub fn to_parsed_variant( &self, ) -> EqnameVariantData<&ParsedQname<'a>, &ParsedUriQualifiedName<'a>>

Returns the name in the type specific to the variant (i.e. ParsedQname or ParsedUriQualifiedName).

Source

pub fn namespace(&self) -> EqnameNamespace<'a>

Returns the namespace part if available: prefix for Qname, URI for UriQualifiedName.

§Examples
use xml_string::names::{EqnameNamespace, Ncname, Qname};

let nc = Eqname::from_str("local")?;
assert_eq!(nc.namespace(), EqnameNamespace::None);

let q = Eqname::from_str("foo:bar")?;
let q_prefix = Ncname::from_str("foo")
    .expect("Should never fail: Valid NCName");
assert_eq!(q.namespace(), EqnameNamespace::Prefix(q_prefix));

let uri_qualified = Eqname::from_str("Q{foo}bar")?;
assert_eq!(uri_qualified.namespace(), EqnameNamespace::Uri("foo"));

let uri_qualified_empty = Eqname::from_str("Q{}bar")?;
assert_eq!(uri_qualified_empty.namespace(), EqnameNamespace::Uri(""));
Source

pub fn local_name(&self) -> &'a Ncname

Returns the local part.

§Examples

let nc = ParsedEqname::from_str("foo")?;
assert_eq!(nc.local_name(), "foo");
let q = ParsedEqname::from_str("foo:bar")?;
assert_eq!(q.local_name(), "bar");

let uri_qualified = ParsedEqname::from_str("Q{foo}bar")?;
assert_eq!(uri_qualified.local_name(), "bar");
Source

pub fn namespace_and_local(&self) -> (EqnameNamespace<'a>, &'a Ncname)

Returns a pair of the namespace and the local name.

This returns the same result as (self.namespace(), self.local_name()), but more efficiently than calling ParsedEqname::namespace and ParsedEqname::local_name individually.

§Examples
use xml_string::names::{EqnameNamespace, Ncname};

let ncname_bar = Ncname::from_str("bar")
    .expect("Should never fail: Valid NCName");

let nc = ParsedEqname::from_str("bar")?;
assert_eq!(nc.namespace_and_local(), (EqnameNamespace::None, ncname_bar));

let q = ParsedEqname::from_str("foo:bar")?;
let expected_prefix = Ncname::from_str("foo")
    .expect("Should never fail: Valid NCName");
assert_eq!(
    q.namespace_and_local(),
    (EqnameNamespace::Prefix(expected_prefix), ncname_bar)
);

let uri_qualified = ParsedEqname::from_str("Q{foo}bar")?;
assert_eq!(uri_qualified.namespace_and_local(), (EqnameNamespace::Uri("foo"), ncname_bar));

Trait Implementations§

Source§

impl AsRef<Eqname> for ParsedEqname<'_>

Source§

fn as_ref(&self) -> &Eqname

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<str> for ParsedEqname<'_>

Source§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<'a> Clone for ParsedEqname<'a>

Source§

fn clone(&self) -> ParsedEqname<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ParsedEqname<'_>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ParsedEqname<'_>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> From<&'a Eqname> for ParsedEqname<'a>

Source§

fn from(s: &'a Eqname) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<ParsedEqname<'a>> for &'a Eqname

Source§

fn from(s: ParsedEqname<'a>) -> Self

Converts to this type from the input type.
Source§

impl Hash for ParsedEqname<'_>

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for ParsedEqname<'_>

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

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

Source§

fn eq(&self, o: &&ParsedEqname<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<&String> for ParsedEqname<'_>

Source§

fn eq(&self, other: &&String) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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

Source§

fn eq(&self, other: &&str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<Box<str>> for ParsedEqname<'_>

Source§

fn eq(&self, other: &Box<str>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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

Source§

fn eq(&self, other: &Cow<'_, str>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<ParsedEqname<'_>> for &String

Source§

fn eq(&self, o: &ParsedEqname<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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

Source§

fn eq(&self, o: &ParsedEqname<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<ParsedEqname<'_>> for Box<str>

Source§

fn eq(&self, o: &ParsedEqname<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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

Source§

fn eq(&self, o: &ParsedEqname<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<ParsedEqname<'_>> for String

Source§

fn eq(&self, o: &ParsedEqname<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<ParsedEqname<'_>> for str

Source§

fn eq(&self, o: &ParsedEqname<'_>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<String> for ParsedEqname<'_>

Source§

fn eq(&self, other: &String) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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

Source§

fn eq(&self, other: &str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<str> for ParsedEqname<'_>

Source§

fn eq(&self, other: &str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq for ParsedEqname<'_>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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

Source§

fn partial_cmp(&self, o: &&ParsedEqname<'_>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<ParsedEqname<'_>> for &String

Source§

fn partial_cmp(&self, o: &ParsedEqname<'_>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

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

Source§

fn partial_cmp(&self, o: &ParsedEqname<'_>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<ParsedEqname<'_>> for Box<str>

Source§

fn partial_cmp(&self, o: &ParsedEqname<'_>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

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

Source§

fn partial_cmp(&self, o: &ParsedEqname<'_>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<ParsedEqname<'_>> for String

Source§

fn partial_cmp(&self, o: &ParsedEqname<'_>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<ParsedEqname<'_>> for str

Source§

fn partial_cmp(&self, o: &ParsedEqname<'_>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd for ParsedEqname<'_>

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

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

Source§

type Error = NameError

The type returned in the event of a conversion error.
Source§

fn try_from(s: &'a str) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> Copy for ParsedEqname<'a>

Source§

impl<'a> Eq for ParsedEqname<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for ParsedEqname<'a>

§

impl<'a> RefUnwindSafe for ParsedEqname<'a>

§

impl<'a> Send for ParsedEqname<'a>

§

impl<'a> Sync for ParsedEqname<'a>

§

impl<'a> Unpin for ParsedEqname<'a>

§

impl<'a> UnwindSafe for ParsedEqname<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.