[]Function sauron::prelude::mt_dom::diff::diff_with_functions

pub fn diff_with_functions<'a, NS, TAG, ATT, VAL, EVENT, MSG, SKIP, REP>(
    old_node: &'a Node<NS, TAG, ATT, VAL, EVENT, MSG>,
    new_node: &'a Node<NS, TAG, ATT, VAL, EVENT, MSG>,
    key: &ATT,
    skip: &SKIP,
    rep: &REP
) -> Vec<Patch<'a, NS, TAG, ATT, VAL, EVENT, MSG>, Global>

Notable traits for Vec<u8, Global>

impl Write for Vec<u8, Global>
where
    TAG: PartialEq<TAG> + Debug,
    NS: PartialEq<NS> + Debug,
    ATT: PartialEq<ATT> + Debug,
    VAL: PartialEq<VAL> + Debug,
    SKIP: Fn(&'a Node<NS, TAG, ATT, VAL, EVENT, MSG>, &'a Node<NS, TAG, ATT, VAL, EVENT, MSG>) -> bool,
    REP: Fn(&'a Node<NS, TAG, ATT, VAL, EVENT, MSG>, &'a Node<NS, TAG, ATT, VAL, EVENT, MSG>) -> bool

calculate the difference of 2 nodes if the skip function evaluates to true diffinf of the node will be skipped entirely

The SKIP fn is passed to check whether the diffing of the old and new element should be skipped, and assumed no changes. This is for optimization where the developer is sure that the dom tree hasn't change.

REP fn stands for replace function which decides if the new element should just replace the old element without diffing