reactive-signals 0.1.0-alpha.4

reactive-signals is a dx-first scope-based fine-grained reactive system.
Documentation
use reactive_signals::{
    runtimes::{ClientRuntime, Runtime},
    signal,
    types::EqData,
    Signal,
};

#[test]
fn test_use() {
    let sx = ClientRuntime::new_root_scope();

    let count = signal!(sx, 5);
    let even = signal!(sx, 2);

    let _is_even = count.with(|val| *val % 2 == 0);

    signal!(sx, move || {
        let is_even = count.with(|v| *v % 2 == 0);
        if is_even {
            even.set(count.get())
        }
    });

    assert_eq!(count.get(), 5);
    assert_eq!(even.get(), 2);

    count.set(6);
    assert_eq!(count.get(), 6);
    assert_eq!(even.get(), 6);

    let _string_sig = signal!(sx, "hi".to_string());

    with_signal_arg(count);
}

fn with_signal_arg<RT: Runtime>(_sig: Signal<EqData<i32>, RT>) {}