Struct tauri_utils::html::NodeRef
source · [−]Expand description
A strong reference to a node.
A node is destroyed when the last strong reference to it dropped.
Each node holds a strong reference to its first child and next sibling (if any), but only a weak reference to its last child, previous sibling, and parent. This is to avoid strong reference cycles, which would cause memory leaks.
As a result, a single NodeRef
is sufficient to keep alive a node
and nodes that are after it in tree order
(its descendants, its following siblings, and their descendants)
but not other nodes in a tree.
To avoid detroying nodes prematurely, programs typically hold a strong reference to the root of a document until they’re done with that document.
Tuple Fields
0: Rc<Node>
Implementations
sourceimpl NodeRef
impl NodeRef
sourcepub fn inclusive_ancestors(&self) -> Ancestors
pub fn inclusive_ancestors(&self) -> Ancestors
Return an iterator of references to this node and its ancestors.
sourcepub fn ancestors(&self) -> Ancestors
pub fn ancestors(&self) -> Ancestors
Return an iterator of references to this node’s ancestors.
sourcepub fn inclusive_preceding_siblings(&self) -> Rev<Siblings>
pub fn inclusive_preceding_siblings(&self) -> Rev<Siblings>
Return an iterator of references to this node and the siblings before it.
sourcepub fn preceding_siblings(&self) -> Rev<Siblings>
pub fn preceding_siblings(&self) -> Rev<Siblings>
Return an iterator of references to this node’s siblings before it.
sourcepub fn inclusive_following_siblings(&self) -> Siblings
pub fn inclusive_following_siblings(&self) -> Siblings
Return an iterator of references to this node and the siblings after it.
sourcepub fn following_siblings(&self) -> Siblings
pub fn following_siblings(&self) -> Siblings
Return an iterator of references to this node’s siblings after it.
sourcepub fn inclusive_descendants(&self) -> Descendants
pub fn inclusive_descendants(&self) -> Descendants
Return an iterator of references to this node and its descendants, in tree order.
Parent nodes appear before the descendants.
Note: this is the NodeEdge::Start
items from traverse()
.
sourcepub fn descendants(&self) -> Descendants
pub fn descendants(&self) -> Descendants
Return an iterator of references to this node’s descendants, in tree order.
Parent nodes appear before the descendants.
Note: this is the NodeEdge::Start
items from traverse()
.
sourcepub fn traverse_inclusive(&self) -> Traverse
pub fn traverse_inclusive(&self) -> Traverse
Return an iterator of the start and end edges of this node and its descendants, in tree order.
sourcepub fn traverse(&self) -> Traverse
pub fn traverse(&self) -> Traverse
Return an iterator of the start and end edges of this node’s descendants, in tree order.
sourcepub fn select(
&self,
selectors: &str
) -> Result<Select<Elements<Descendants>, Selectors>, ()>
pub fn select(
&self,
selectors: &str
) -> Result<Select<Elements<Descendants>, Selectors>, ()>
Return an iterator of the inclusive descendants element that match the given selector list.
sourcepub fn select_first(
&self,
selectors: &str
) -> Result<NodeDataRef<ElementData>, ()>
pub fn select_first(
&self,
selectors: &str
) -> Result<NodeDataRef<ElementData>, ()>
Return the first inclusive descendants element that match the given selector list.
sourceimpl NodeRef
impl NodeRef
sourcepub fn into_element_ref(self) -> Option<NodeDataRef<ElementData>>
pub fn into_element_ref(self) -> Option<NodeDataRef<ElementData>>
If this node is an element, return a strong reference to element-specific data.
sourcepub fn into_text_ref(self) -> Option<NodeDataRef<RefCell<String>>>
pub fn into_text_ref(self) -> Option<NodeDataRef<RefCell<String>>>
If this node is a text node, return a strong reference to its contents.
sourcepub fn into_comment_ref(self) -> Option<NodeDataRef<RefCell<String>>>
pub fn into_comment_ref(self) -> Option<NodeDataRef<RefCell<String>>>
If this node is a comment, return a strong reference to its contents.
sourcepub fn into_doctype_ref(self) -> Option<NodeDataRef<Doctype>>
pub fn into_doctype_ref(self) -> Option<NodeDataRef<Doctype>>
If this node is a doctype, return a strong reference to doctype-specific data.
sourcepub fn into_document_ref(self) -> Option<NodeDataRef<DocumentData>>
pub fn into_document_ref(self) -> Option<NodeDataRef<DocumentData>>
If this node is a document, return a strong reference to document-specific data.
sourceimpl NodeRef
impl NodeRef
sourceimpl NodeRef
impl NodeRef
sourcepub fn new_element<I>(name: QualName, attributes: I) -> NodeRef where
I: IntoIterator<Item = (ExpandedName, Attribute)>,
pub fn new_element<I>(name: QualName, attributes: I) -> NodeRef where
I: IntoIterator<Item = (ExpandedName, Attribute)>,
Create a new element node.
sourcepub fn new_comment<T>(value: T) -> NodeRef where
T: Into<String>,
pub fn new_comment<T>(value: T) -> NodeRef where
T: Into<String>,
Create a new comment node.
sourcepub fn new_processing_instruction<T1, T2>(target: T1, data: T2) -> NodeRef where
T1: Into<String>,
T2: Into<String>,
pub fn new_processing_instruction<T1, T2>(target: T1, data: T2) -> NodeRef where
T1: Into<String>,
T2: Into<String>,
Create a new processing instruction node.
sourcepub fn new_doctype<T1, T2, T3>(name: T1, public_id: T2, system_id: T3) -> NodeRef where
T1: Into<String>,
T2: Into<String>,
T3: Into<String>,
pub fn new_doctype<T1, T2, T3>(name: T1, public_id: T2, system_id: T3) -> NodeRef where
T1: Into<String>,
T2: Into<String>,
T3: Into<String>,
Create a new doctype node.
sourcepub fn new_document() -> NodeRef
pub fn new_document() -> NodeRef
Create a new document node.
sourcepub fn text_contents(&self) -> String
pub fn text_contents(&self) -> String
Return the concatenation of all text nodes in this subtree.
sourceimpl NodeRef
impl NodeRef
sourcepub fn append(&self, new_child: NodeRef)
pub fn append(&self, new_child: NodeRef)
Append a new child to this node, after existing children.
The new child is detached from its previous position.
sourcepub fn prepend(&self, new_child: NodeRef)
pub fn prepend(&self, new_child: NodeRef)
Prepend a new child to this node, before existing children.
The new child is detached from its previous position.
sourcepub fn insert_after(&self, new_sibling: NodeRef)
pub fn insert_after(&self, new_sibling: NodeRef)
Insert a new sibling after this node.
The new sibling is detached from its previous position.
sourcepub fn insert_before(&self, new_sibling: NodeRef)
pub fn insert_before(&self, new_sibling: NodeRef)
Insert a new sibling before this node.
The new sibling is detached from its previous position.
Methods from Deref<Target = Node>
sourcepub fn as_element(&self) -> Option<&ElementData>
pub fn as_element(&self) -> Option<&ElementData>
If this node is an element, return a reference to element-specific data.
sourcepub fn as_text(&self) -> Option<&RefCell<String>>
pub fn as_text(&self) -> Option<&RefCell<String>>
If this node is a text node, return a reference to its contents.
sourcepub fn as_comment(&self) -> Option<&RefCell<String>>
pub fn as_comment(&self) -> Option<&RefCell<String>>
If this node is a comment, return a reference to its contents.
sourcepub fn as_doctype(&self) -> Option<&Doctype>
pub fn as_doctype(&self) -> Option<&Doctype>
If this node is a document, return a reference to doctype-specific data.
sourcepub fn as_document(&self) -> Option<&DocumentData>
pub fn as_document(&self) -> Option<&DocumentData>
If this node is a document, return a reference to document-specific data.
sourcepub fn parent(&self) -> Option<NodeRef>
pub fn parent(&self) -> Option<NodeRef>
Return a reference to the parent node, unless this node is the root of the tree.
sourcepub fn first_child(&self) -> Option<NodeRef>
pub fn first_child(&self) -> Option<NodeRef>
Return a reference to the first child of this node, unless it has no child.
sourcepub fn last_child(&self) -> Option<NodeRef>
pub fn last_child(&self) -> Option<NodeRef>
Return a reference to the last child of this node, unless it has no child.
sourcepub fn previous_sibling(&self) -> Option<NodeRef>
pub fn previous_sibling(&self) -> Option<NodeRef>
Return a reference to the previous sibling of this node, unless it is a first child.
sourcepub fn next_sibling(&self) -> Option<NodeRef>
pub fn next_sibling(&self) -> Option<NodeRef>
Return a reference to the next sibling of this node, unless it is a last child.
Trait Implementations
impl Eq for NodeRef
Auto Trait Implementations
impl !RefUnwindSafe for NodeRef
impl !Send for NodeRef
impl !Sync for NodeRef
impl Unpin for NodeRef
impl !UnwindSafe for NodeRef
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more