rsiot/drivers_i2c/pcf8575/pcf8575_pin_mode.rs
1use crate::message::{Message, MsgDataBound};
2
3/// Режим работы пина
4#[derive(Clone)]
5pub enum PCF8575PinMode<TMsg>
6where
7 TMsg: MsgDataBound,
8{
9 /// Пин отключен
10 Disabled,
11
12 /// Пин в режиме входа
13 Input {
14 /// Преобразование входных сигналов в исходящие сообщения
15 fn_output: fn(bool) -> Option<Message<TMsg>>,
16 },
17
18 /// Пин в режиме выхода
19 Output {
20 /// Преобразование входящих сообщений в сигналы управления выходами
21 fn_input: fn(Message<TMsg>) -> Option<bool>,
22 },
23}