kaspa_utils/
triggers.rs

1pub use triggered::{Listener, Trigger};
2
3/// Wrapper containing a single Trigger instance
4#[derive(Debug, Clone)]
5pub struct SingleTrigger {
6    pub trigger: Trigger,
7    pub listener: Listener,
8}
9
10impl SingleTrigger {
11    pub fn new() -> SingleTrigger {
12        let (trigger, listener) = triggered::trigger();
13        SingleTrigger { trigger, listener }
14    }
15}
16
17impl Default for SingleTrigger {
18    fn default() -> Self {
19        Self::new()
20    }
21}
22
23/// Bi-directional trigger meant to function in
24/// request/response fashion
25#[derive(Debug, Clone, Default)]
26pub struct DuplexTrigger {
27    pub request: SingleTrigger,
28    pub response: SingleTrigger,
29}
30
31impl DuplexTrigger {
32    pub fn new() -> DuplexTrigger {
33        DuplexTrigger { request: SingleTrigger::new(), response: SingleTrigger::new() }
34    }
35}