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 the exact XPath nodes included for canonicalization and transforms.

Attributes and namespace bindings are first-class XPath nodes even though roxmltree exposes them through their owner element. Materializing them here lets XPath filters independently include or remove those nodes as required by canonical XML document-subset processing.

Implementations§

Source§

impl<'a> NodeSet<'a>

Source

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

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

§Errors

Returns TransformError::NodeSetTooLarge or TransformError::NodeSetStringsTooLarge when projecting the document’s tree, attribute, namespace, or owned string data would exceed its budget.

Source

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

Create a node set representing the entire document with comments.

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

§Errors

Returns TransformError::NodeSetTooLarge or TransformError::NodeSetStringsTooLarge when projecting the document’s tree, attribute, namespace, or owned string data would exceed its budget.

Source

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

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

§Errors

Returns TransformError::NodeSetTooLarge or TransformError::NodeSetStringsTooLarge when projecting the subtree’s tree, attribute, namespace, or owned string data would exceed its budget.

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> Same for T

Source§

type Output = T

Should always be Self
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.