mt-dom 0.59.2

A library for generating patches as a result diffing virtual DOM tree
Documentation
#![deny(warnings)]
use mt_dom::{patch::*, *};

pub type MyNode =
    Node<&'static str, &'static str, &'static str, &'static str, &'static str>;

#[test]
fn test_node_list() {
    let old_list = node_list([
        element("li", [attr("key", "1")], []),
        element("li", [attr("key", "2")], []),
    ]);

    let old: MyNode = element(
        "div",
        [],
        [
            element("li", [attr("key", "0")], []),
            old_list,
            element("li", [attr("key", "3")], []),
        ],
    );

    let new_list = node_list([element("li", [attr("key", "1")], [])]);
    let new: MyNode = element(
        "div",
        [],
        [
            element("li", [attr("key", "0")], []),
            new_list,
            element("li", [attr("key", "3")], []),
        ],
    );

    println!("old: {:#?}", old);

    let diff = diff_with_key(&old, &new, &"key");
    assert_eq!(
        diff,
        vec![Patch::remove_node(Some(&"li"), TreePath::new(vec![2]),)],
    );
}