Skip to main content

NodeSet

Struct NodeSet 

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

A set of nodes from a roxmltree document.

Represents “which nodes are included” for canonicalization and transforms. Two modes:

  • Whole document: included is None, meaning all nodes are in the set (minus any in excluded).
  • Subset: included is Some(ids), meaning only those node IDs are in the set (minus any in excluded).

Implementations§

Source§

impl<'a> NodeSet<'a>

Source

pub fn entire_document_without_comments(doc: &'a Document<'a>) -> Self

Create a node set representing the entire document without comments.

Per XMLDSig §4.3.3.2: “An empty URI […] is a reference to the document […] and the comment nodes are not included.”

Source

pub fn entire_document_with_comments(doc: &'a Document<'a>) -> Self

Create a node set representing the entire document with comments.

Used for #xpointer(/) which, unlike empty URI, includes comment nodes.

Source

pub fn subtree(element: Node<'a, 'a>) -> Self

Create a node set rooted at element, containing that element and all of its descendant nodes (elements, text, and, for this constructor, comment nodes).

Note: in roxmltree, attributes and namespaces are not separate nodes and therefore are not tracked individually in this NodeSet. During canonicalization, any attributes and namespace declarations belonging to the included elements are serialized as part of those elements.

Source

pub fn document(&self) -> &'a Document<'a>

Reference to the underlying document.

Source

pub fn contains(&self, node: Node<'_, '_>) -> bool

Check whether a node is in this set.

Returns false for nodes from a different document than this set’s owning document (prevents cross-document NodeId collisions).

Source

pub fn exclude_subtree(&mut self, node: Node<'_, '_>)

Exclude a node and all its descendants from this set.

No-op for nodes from a different document.

Source

pub fn with_comments(&self) -> bool

Whether comments are included in this node set.

Auto Trait Implementations§

§

impl<'a> Freeze for NodeSet<'a>

§

impl<'a> RefUnwindSafe for NodeSet<'a>

§

impl<'a> Send for NodeSet<'a>

§

impl<'a> Sync for NodeSet<'a>

§

impl<'a> Unpin for NodeSet<'a>

§

impl<'a> UnsafeUnpin for NodeSet<'a>

§

impl<'a> UnwindSafe for NodeSet<'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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> 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, 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.