floem_reactive/
trigger.rs1use 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}