rsiot/drivers_i2c/pcf8575/
pcf8575_pin_mode.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use crate::message::{Message, MsgDataBound};

/// Режим работы пина
#[derive(Clone)]
pub enum PCF8575PinMode<TMsg>
where
    TMsg: MsgDataBound,
{
    /// Пин отключен
    Disabled,

    /// Пин в режиме входа
    Input {
        /// Преобразование входных сигналов в исходящие сообщения
        fn_output: fn(bool) -> Option<Message<TMsg>>,
    },

    /// Пин в режиме выхода
    Output {
        /// Преобразование входящих сообщений в сигналы управления выходами
        fn_input: fn(Message<TMsg>) -> Option<bool>,
    },
}