reactive-signals 0.1.0-alpha.4

reactive-signals is a dx-first scope-based fine-grained reactive system.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::{
    iter::{NodeResolver, VecTreeIter},
    runtimes::{Runtime, RuntimeInner},
    signals::SignalId,
};

pub(crate) fn propagate_change<RT: Runtime>(rt: &RuntimeInner<RT>, sig: SignalId<RT>) {
    let tree = &rt.scope_tree;
    let mut iter = VecTreeIter::new(tree, sig);

    while let Some(next) = iter.next() {
        // println!("upd: {next:?}");
        if !tree.node(next).run(rt, next) {
            iter.skip_children();
        }
    }
}