1use interface::*;
4
5pub mod interface;
6pub use empty_hooks::create_empty_hooks;
7
8pub struct Hooks<CH: CommonHooks, MH: MasterHooks, SH: SlaveHooks, RH: RgbHooks> {
11 pub common: CH,
12 pub master: MH,
13 pub slave: SH,
14 pub rgb: RH,
15}
16
17pub mod channels {
19 pub use crate::task::channels::*;
20}
21
22pub mod empty_hooks {
24 use super::{
25 Hooks, MasterHooks, SlaveHooks,
26 interface::{CommonHooks, RgbHooks},
27 };
28
29 pub struct EmptyCommonHooks;
30 impl CommonHooks for EmptyCommonHooks {}
31
32 pub struct EmptyMasterHooks;
33 impl MasterHooks for EmptyMasterHooks {}
34
35 pub struct EmptySlaveHooks;
36 impl SlaveHooks for EmptySlaveHooks {}
37
38 pub struct EmptyRgbHooks;
39 impl RgbHooks for EmptyRgbHooks {}
40
41 pub const fn create_empty_hooks()
42 -> Hooks<EmptyCommonHooks, EmptyMasterHooks, EmptySlaveHooks, EmptyRgbHooks> {
43 Hooks {
44 common: EmptyCommonHooks,
45 master: EmptyMasterHooks,
46 slave: EmptySlaveHooks,
47 rgb: EmptyRgbHooks,
48 }
49 }
50}