rsiot/drivers_i2c/general/
config.rs1use std::time::Duration;
2
3use crate::message::{Message, MsgDataBound};
4
5use super::super::I2cSlaveAddress;
6
7pub type FnInput<TMsg> = fn(&Message<TMsg>) -> anyhow::Result<Option<Vec<u8>>>;
9
10pub type FnOutput<TMsg> = fn(Vec<u8>) -> anyhow::Result<Option<Message<TMsg>>>;
12
13#[derive(Clone)]
15pub struct Config<TMsg>
16where
17 TMsg: MsgDataBound,
18{
19 pub address: I2cSlaveAddress,
21
22 pub timeout: Duration,
24
25 pub fn_input: FnInput<TMsg>,
27
28 pub fn_output: FnOutput<TMsg>,
30}