rsiot/components/cmp_raspberrypi_gpio/
config.rs1use crate::message::{Message, MsgDataBound};
2
3#[derive(Clone)]
5pub struct Config<TMsg>
6where
7 TMsg: MsgDataBound,
8{
9 #[doc = include_str!("./test/config_inputs.rs")]
15 pub inputs: Vec<ConfigInput<TMsg>>,
17
18 #[doc = include_str!("./test/config_outputs.rs")]
24 pub outputs: Vec<ConfigOutput<TMsg>>,
26}
27
28impl<TMsg> Default for Config<TMsg>
29where
30 TMsg: MsgDataBound,
31{
32 fn default() -> Self {
33 Self {
34 inputs: vec![],
35 outputs: vec![],
36 }
37 }
38}
39
40#[derive(Clone)]
42pub struct ConfigInput<TMsg> {
43 pub pin_number: u8,
45
46 pub fn_output: fn(bool) -> Message<TMsg>,
48
49 pub pull_mode: PullMode,
51}
52
53#[derive(Clone)]
55pub enum PullMode {
56 Floating,
58 Up,
60 Down,
62}
63
64#[derive(Clone)]
66pub struct ConfigOutput<TMsg> {
67 pub pin_number: u8,
69
70 pub fn_input: fn(Message<TMsg>) -> Option<bool>,
72
73 pub is_low_triggered: bool,
75}