floem_reactive/
trigger.rs

1use crate::{
2    signal::{create_rw_signal, RwSignal},
3    SignalUpdate, SignalWith,
4};
5
6#[derive(Debug)]
7pub struct Trigger {
8    signal: RwSignal<()>,
9}
10
11impl Copy for Trigger {}
12
13impl Clone for Trigger {
14    fn clone(&self) -> Self {
15        *self
16    }
17}
18
19impl Trigger {
20    pub fn notify(&self) {
21        self.signal.set(());
22    }
23
24    pub fn track(&self) {
25        self.signal.with(|_| {});
26    }
27
28    #[allow(clippy::new_without_default)]
29    pub fn new() -> Self {
30        create_trigger()
31    }
32}
33
34pub fn create_trigger() -> Trigger {
35    Trigger {
36        signal: create_rw_signal(()),
37    }
38}