rsiot/components/cmp_derive_new/
config.rs1use std::time::Duration;
2
3use super::BufferBound;
4
5pub type FnInput<TMsg, TBuffer> = fn(&TMsg, &TBuffer) -> Option<TBuffer>;
6pub type FnOutput<TMsg, TBuffer> = fn(&TBuffer) -> TMsg;
7
8pub struct Config<TMsg, TBuffer>
10where
11 TBuffer: BufferBound,
12{
13 pub output_send: ConfigOutputSend,
15
16 pub fn_input: FnInput<TMsg, TBuffer>,
18
19 pub fn_output: fn(&TBuffer) -> TMsg,
21}
22
23pub enum ConfigOutputSend {
25 OnEveryChange,
27
28 Periodic(Duration),
30}