Trait RcNodeExt

Source
pub trait RcNodeExt {
    // Required methods
    fn push_child(&self, child: Rc<Node>) -> Result<()>;
    fn deep_clone(&self, parent: Option<Weak<Node>>) -> Result<Rc<Node>>;
    fn deep_clone_with_modify<F: Fn(&mut NodeData) -> Result<()>>(
        &self,
        parent: Option<Weak<Node>>,
        modify: F,
    ) -> Result<Rc<Node>>;
    fn change_child<F: Fn(&mut NodeData) -> Result<()>>(
        &self,
        index: usize,
        modify: F,
    ) -> Result<()>;
}
Available on crate feature markup5ever_rcdom only.
Expand description

Extensions for Rc

Required Methods§

Source

fn push_child(&self, child: Rc<Node>) -> Result<()>

Pushes a child node to the current node.

Source

fn deep_clone(&self, parent: Option<Weak<Node>>) -> Result<Rc<Node>>

Create a deep clone

Source

fn deep_clone_with_modify<F: Fn(&mut NodeData) -> Result<()>>( &self, parent: Option<Weak<Node>>, modify: F, ) -> Result<Rc<Node>>

Create a deep clone with modification of data.

Source

fn change_child<F: Fn(&mut NodeData) -> Result<()>>( &self, index: usize, modify: F, ) -> Result<()>

Changes a child node at the given index by modifying its data.

Deep clones are needed.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl RcNodeExt for Rc<Node>

Source§

fn push_child(&self, child: Rc<Node>) -> Result<()>

Source§

fn deep_clone(&self, parent: Option<Weak<Node>>) -> Result<Rc<Node>>

Source§

fn deep_clone_with_modify<F: Fn(&mut NodeData) -> Result<()>>( &self, parent: Option<Weak<Node>>, modify: F, ) -> Result<Rc<Node>>

Source§

fn change_child<F: Fn(&mut NodeData) -> Result<()>>( &self, index: usize, modify: F, ) -> Result<()>

Implementors§