pub struct UriQualifiedName(/* private fields */);Expand description
String slice for URIQualifiedName.
Implementations§
Source§impl UriQualifiedName
impl UriQualifiedName
Sourcepub fn from_str(s: &str) -> Result<&Self, NameError>
pub fn from_str(s: &str) -> Result<&Self, NameError>
Creates a new &UriQualifiedName.
URIQualifiedName has Q{uri}ncname format.
UriQualifiedName type validates NCName part, but does not validate URI part.
In most contexts, processors are not required to raise errors if a URI is not lexically valid according to RFC3986 and RFC3987. See 2.4.5 URI Literals for details.
XPath 3.1 requires a statically known, valid URI in a BracedURILiteral. An implementation may raise a static error err:XQST0046 if the value of a Braced URI Literal is of nonzero length and is neither an absolute URI nor a relative URI.
It is user’s responsibility to validate URI part if necessary.
§Failures
Fails if the given string is not a valid URIQualifiedName.
§Examples
let name = UriQualifiedName::from_str("Q{http://example.com/}name")?;
assert_eq!(name, "Q{http://example.com/}name");
assert_eq!(
UriQualifiedName::from_str("Q{}name")?,
"Q{}name",
"Empty URI is OK"
);
assert_eq!(
UriQualifiedName::from_str("Q{foo}bar")?,
"Q{foo}bar",
"URI is not validated"
);
assert!(
UriQualifiedName::from_str("foo").is_err(),
"URIQualifiedName has `Q{{uri}}ncname` format"
);
assert!(
UriQualifiedName::from_str("Q{http://example.com}foo:bar").is_err(),
"Colon is not allowed"
);
assert!(
UriQualifiedName::from_str("Q{foo{bar}qux").is_err(),
"URI part cannot have `{{` and `}}`"
);Sourcepub unsafe fn new_unchecked(s: &str) -> &Self
pub unsafe fn new_unchecked(s: &str) -> &Self
Creates a new &UriQualifiedName without validation.
§Safety
The given string should be a valid URIQualifiedName.
§Examples
let name = unsafe {
UriQualifiedName::new_unchecked("Q{foo}bar")
};
assert_eq!(name, "Q{foo}bar");Sourcepub fn as_str(&self) -> &str
pub fn as_str(&self) -> &str
Returns the string as &str.
§Examples
let name = UriQualifiedName::from_str("Q{foo}bar")?;
assert_eq!(name, "Q{foo}bar");
let s: &str = name.as_str();
assert_eq!(s, "Q{foo}bar");Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the length of the string in bytes.
§Examples
let name = UriQualifiedName::from_str("Q{foo}bar")?;
assert_eq!(name.len(), "Q{foo}bar".len());Sourcepub fn parse_next(s: &str) -> Result<(&Self, &str), NameError>
pub fn parse_next(s: &str) -> Result<(&Self, &str), NameError>
Parses the leading UriQualifiedName and returns the value and the rest input.
§Exmaples
let input = "Q{foo}bar:012";
let expected = UriQualifiedName::from_str("Q{foo}bar")
.expect("valid UriQualifiedName");
assert_eq!(
UriQualifiedName::parse_next(input),
Ok((expected, ":012"))
);let input = "012";
assert!(UriQualifiedName::parse_next(input).is_err());Sourcepub fn uri(&self) -> &str
pub fn uri(&self) -> &str
Returns the URI.
Note that this is O(length) operation.
Consider using ParsedUriQualifiedName::uri method if possible.
§Examples
let name = UriQualifiedName::from_str("Q{foo}bar")?;
assert_eq!(name.uri(), "foo");
let empty_uri = UriQualifiedName::from_str("Q{}foo")?;
assert_eq!(empty_uri.uri(), "");Sourcepub fn local_name(&self) -> &Ncname
pub fn local_name(&self) -> &Ncname
Returns the local name.
Note that this is O(length) operation.
Consider using ParsedUriQualifiedName::local_name method if possible.
§Examples
let name = UriQualifiedName::from_str("Q{foo}bar")?;
assert_eq!(name.local_name(), "bar");Sourcepub fn uri_and_local(&self) -> (&str, &Ncname)
pub fn uri_and_local(&self) -> (&str, &Ncname)
Returns a pair of the uri and the local name.
Note that this is O(length) operation.
Consider using ParsedUriQualifiedName::uri_and_local method if possible.
§Examples
use std::convert::TryFrom;
let name = UriQualifiedName::from_str("Q{foo}bar")?;
assert_eq!(name.uri_and_local(), (name.uri(), name.local_name()));Sourcepub fn into_boxed_str(self: Box<Self>) -> Box<str>
pub fn into_boxed_str(self: Box<Self>) -> Box<str>
Converts a Box<UriQualifiedName> into a Box<str> without copying or allocating.
§Examples
let name = UriQualifiedName::from_str("Q{foo}bar")?;
let boxed_name: Box<UriQualifiedName> = name.into();
assert_eq!(&*boxed_name, name);
let boxed_str: Box<str> = boxed_name.into_boxed_str();
assert_eq!(&*boxed_str, name.as_str());Trait Implementations§
Source§impl AsRef<Eqname> for UriQualifiedName
impl AsRef<Eqname> for UriQualifiedName
Source§impl AsRef<UriQualifiedName> for ParsedUriQualifiedName<'_>
impl AsRef<UriQualifiedName> for ParsedUriQualifiedName<'_>
Source§fn as_ref(&self) -> &UriQualifiedName
fn as_ref(&self) -> &UriQualifiedName
Source§impl AsRef<UriQualifiedName> for UriQualifiedName
impl AsRef<UriQualifiedName> for UriQualifiedName
Source§fn as_ref(&self) -> &UriQualifiedName
fn as_ref(&self) -> &UriQualifiedName
Source§impl AsRef<str> for UriQualifiedName
impl AsRef<str> for UriQualifiedName
Source§impl Debug for &UriQualifiedName
impl Debug for &UriQualifiedName
Source§impl Display for &UriQualifiedName
impl Display for &UriQualifiedName
Source§impl<'a> From<&'a UriQualifiedName> for &'a Eqname
impl<'a> From<&'a UriQualifiedName> for &'a Eqname
Source§fn from(s: &'a UriQualifiedName) -> Self
fn from(s: &'a UriQualifiedName) -> Self
Source§impl From<&UriQualifiedName> for Arc<UriQualifiedName>
Available on crate feature alloc only.
impl From<&UriQualifiedName> for Arc<UriQualifiedName>
alloc only.Source§fn from(s: &UriQualifiedName) -> Self
fn from(s: &UriQualifiedName) -> Self
Source§impl From<&UriQualifiedName> for Box<UriQualifiedName>
Available on crate feature alloc only.
impl From<&UriQualifiedName> for Box<UriQualifiedName>
alloc only.Source§fn from(s: &UriQualifiedName) -> Self
fn from(s: &UriQualifiedName) -> Self
Source§impl<'a> From<&'a UriQualifiedName> for ParsedUriQualifiedName<'a>
impl<'a> From<&'a UriQualifiedName> for ParsedUriQualifiedName<'a>
Source§fn from(s: &'a UriQualifiedName) -> Self
fn from(s: &'a UriQualifiedName) -> Self
Source§impl From<&UriQualifiedName> for Rc<UriQualifiedName>
Available on crate feature alloc only.
impl From<&UriQualifiedName> for Rc<UriQualifiedName>
alloc only.Source§fn from(s: &UriQualifiedName) -> Self
fn from(s: &UriQualifiedName) -> Self
Source§impl<'a> From<ParsedUriQualifiedName<'a>> for &'a UriQualifiedName
impl<'a> From<ParsedUriQualifiedName<'a>> for &'a UriQualifiedName
Source§fn from(s: ParsedUriQualifiedName<'a>) -> Self
fn from(s: ParsedUriQualifiedName<'a>) -> Self
Source§impl Hash for UriQualifiedName
impl Hash for UriQualifiedName
Source§impl Ord for UriQualifiedName
impl Ord for UriQualifiedName
Source§impl PartialEq<&String> for UriQualifiedName
impl PartialEq<&String> for UriQualifiedName
Source§impl PartialEq<&UriQualifiedName> for str
impl PartialEq<&UriQualifiedName> for str
Source§fn eq(&self, o: &&UriQualifiedName) -> bool
fn eq(&self, o: &&UriQualifiedName) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialEq<&str> for UriQualifiedName
impl PartialEq<&str> for UriQualifiedName
Source§impl PartialEq<String> for UriQualifiedName
impl PartialEq<String> for UriQualifiedName
Source§impl PartialEq<UriQualifiedName> for &String
impl PartialEq<UriQualifiedName> for &String
Source§fn eq(&self, o: &UriQualifiedName) -> bool
fn eq(&self, o: &UriQualifiedName) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialEq<UriQualifiedName> for &str
impl PartialEq<UriQualifiedName> for &str
Source§fn eq(&self, o: &UriQualifiedName) -> bool
fn eq(&self, o: &UriQualifiedName) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialEq<UriQualifiedName> for Box<str>
impl PartialEq<UriQualifiedName> for Box<str>
Source§fn eq(&self, o: &UriQualifiedName) -> bool
fn eq(&self, o: &UriQualifiedName) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialEq<UriQualifiedName> for Cow<'_, str>
impl PartialEq<UriQualifiedName> for Cow<'_, str>
Source§fn eq(&self, o: &UriQualifiedName) -> bool
fn eq(&self, o: &UriQualifiedName) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialEq<UriQualifiedName> for String
impl PartialEq<UriQualifiedName> for String
Source§fn eq(&self, o: &UriQualifiedName) -> bool
fn eq(&self, o: &UriQualifiedName) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialEq<UriQualifiedName> for str
impl PartialEq<UriQualifiedName> for str
Source§fn eq(&self, o: &UriQualifiedName) -> bool
fn eq(&self, o: &UriQualifiedName) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialEq<str> for &UriQualifiedName
impl PartialEq<str> for &UriQualifiedName
Source§impl PartialEq<str> for UriQualifiedName
impl PartialEq<str> for UriQualifiedName
Source§impl PartialEq for UriQualifiedName
impl PartialEq for UriQualifiedName
Source§fn eq(&self, other: &UriQualifiedName) -> bool
fn eq(&self, other: &UriQualifiedName) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd<&String> for UriQualifiedName
impl PartialOrd<&String> for UriQualifiedName
Source§impl PartialOrd<&UriQualifiedName> for str
impl PartialOrd<&UriQualifiedName> for str
Source§impl PartialOrd<&str> for UriQualifiedName
impl PartialOrd<&str> for UriQualifiedName
Source§impl PartialOrd<Box<str>> for UriQualifiedName
impl PartialOrd<Box<str>> for UriQualifiedName
Source§impl PartialOrd<Cow<'_, str>> for UriQualifiedName
impl PartialOrd<Cow<'_, str>> for UriQualifiedName
Source§impl PartialOrd<String> for UriQualifiedName
impl PartialOrd<String> for UriQualifiedName
Source§impl PartialOrd<UriQualifiedName> for &String
impl PartialOrd<UriQualifiedName> for &String
Source§impl PartialOrd<UriQualifiedName> for &str
impl PartialOrd<UriQualifiedName> for &str
Source§impl PartialOrd<UriQualifiedName> for Box<str>
impl PartialOrd<UriQualifiedName> for Box<str>
Source§impl PartialOrd<UriQualifiedName> for Cow<'_, str>
impl PartialOrd<UriQualifiedName> for Cow<'_, str>
Source§impl PartialOrd<UriQualifiedName> for String
impl PartialOrd<UriQualifiedName> for String
Source§impl PartialOrd<UriQualifiedName> for str
impl PartialOrd<UriQualifiedName> for str
Source§impl PartialOrd<str> for &UriQualifiedName
impl PartialOrd<str> for &UriQualifiedName
Source§impl PartialOrd<str> for Box<UriQualifiedName>
impl PartialOrd<str> for Box<UriQualifiedName>
Source§impl PartialOrd<str> for UriQualifiedName
impl PartialOrd<str> for UriQualifiedName
Source§impl PartialOrd for UriQualifiedName
impl PartialOrd for UriQualifiedName
Source§impl ToOwned for UriQualifiedName
Available on crate feature alloc only.
impl ToOwned for UriQualifiedName
alloc only.