pub struct NamespaceStack(pub Vec<Namespace>);
Expand description

Namespace stack is a sequence of namespaces.

Namespace stack is used to represent cumulative namespace consisting of combined namespaces from nested elements.

Tuple Fields§

§0: Vec<Namespace>

Implementations§

source§

impl NamespaceStack

source

pub fn empty() -> NamespaceStack

Returns an empty namespace stack.

source

pub fn default() -> NamespaceStack

Returns a namespace stack with default items in it.

Default items are the following:

  • xmlhttp://www.w3.org/XML/1998/namespace;
  • xmlnshttp://www.w3.org/2000/xmlns/.
source

pub fn push_empty(&mut self) -> &mut NamespaceStack

Adds an empty namespace to the top of this stack.

source

pub fn pop(&mut self) -> Namespace

Removes the topmost namespace in this stack.

Panics if the stack is empty.

source

pub fn try_pop(&mut self) -> Option<Namespace>

Removes the topmost namespace in this stack.

Returns Some(namespace) if this stack is not empty and None otherwise.

source

pub fn peek_mut(&mut self) -> &mut Namespace

Borrows the topmost namespace mutably, leaving the stack intact.

Panics if the stack is empty.

source

pub fn peek(&self) -> &Namespace

Borrows the topmost namespace immutably, leaving the stack intact.

Panics if the stack is empty.

source

pub fn put_checked<P, U>(&mut self, prefix: P, uri: U) -> boolwhere P: Into<String> + AsRef<str>, U: Into<String> + AsRef<str>,

Puts a mapping into the topmost namespace if this stack does not already contain one.

Returns a boolean flag indicating whether the insertion has completed successfully. Note that both key and value are matched and the mapping is inserted if either namespace prefix is not already mapped, or if it is mapped, but to a different URI.

Parameters
  • prefix — namespace prefix;
  • uri — namespace URI.
Return value

true if prefix has been inserted successfully; false if the prefix was already present in the namespace stack.

source

pub fn put<P, U>(&mut self, prefix: P, uri: U) -> boolwhere P: Into<String>, U: Into<String>,

Puts a mapping into the topmost namespace in this stack.

This method does not override a mapping in the topmost namespace if it is already present, however, it does not depend on other namespaces in the stack, so it is possible to put a mapping which is present in lower namespaces.

Returns a boolean flag indicating whether the insertion has completed successfully.

Parameters
  • prefix — namespace prefix;
  • uri — namespace URI.
Return value

true if prefix has been inserted successfully; false if the prefix was already present in the namespace.

source

pub fn get<'a, P: ?Sized + AsRef<str>>(&'a self, prefix: &P) -> Option<&'a str>

Performs a search for the given prefix in the whole stack.

This method walks the stack from top to bottom, querying each namespace in order for the given prefix. If none of the namespaces contains the prefix, None is returned.

Parameters
  • prefix — namespace prefix.
source

pub fn squash(&self) -> Namespace

Combines this stack of namespaces into a single namespace.

Namespaces are combined in left-to-right order, that is, rightmost namespace elements take priority over leftmost ones.

source

pub fn checked_target(&mut self) -> CheckedTarget<'_>

Returns an object which implements Extend using put_checked() instead of put().

See CheckedTarget for more information.

source

pub fn iter(&self) -> NamespaceStackMappings<'_>

Returns an iterator over all mappings in this namespace stack.

Trait Implementations§

source§

impl Clone for NamespaceStack

source§

fn clone(&self) -> NamespaceStack

Returns a copy 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 NamespaceStack

source§

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

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

impl<'a> Extend<(&'a str, &'a str)> for NamespaceStack

source§

fn extend<T>(&mut self, iterable: T)where T: IntoIterator<Item = UriMapping<'a>>,

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl<'a> IntoIterator for &'a NamespaceStack

§

type Item = (&'a str, &'a str)

The type of the elements being iterated over.
§

type IntoIter = NamespaceStackMappings<'a>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl PartialEq<NamespaceStack> for NamespaceStack

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for NamespaceStack

source§

impl StructuralEq for NamespaceStack

source§

impl StructuralPartialEq for NamespaceStack

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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 Twhere T: Clone,

§

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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.