rsiot/components/cmp_webstorage/
config.rs1use crate::message::*;
2
3pub type FnInput<TMsg> = fn(Message<TMsg>) -> Option<Message<TMsg>>;
5
6pub type FnOutput<TMsg> = fn(Message<TMsg>) -> Option<Message<TMsg>>;
7
8pub struct Config<TMsg>
10where
11 TMsg: MsgDataBound,
12{
13 pub storage_kind: ConfigStorageKind,
15
16 pub fn_input: FnInput<TMsg>,
18
19 pub fn_output: FnOutput<TMsg>,
21
22 pub default_messages: Vec<Message<TMsg>>,
24}
25impl<TMsg> Default for Config<TMsg>
28where
29 TMsg: MsgDataBound,
30{
31 fn default() -> Self {
32 Self {
33 storage_kind: ConfigStorageKind::LocalStorage,
34 fn_input: |_| None,
35 fn_output: |_| None,
36 default_messages: vec![],
37 }
38 }
39}
40
41#[derive(Clone, Copy, Debug)]
44pub enum ConfigStorageKind {
45 LocalStorage,
47 SessionStorage,
49}
50