embassy_stm32_plus/builder/i2c/
base.rs1use embassy_stm32::i2c::Config;
2use embassy_stm32::time::Hertz;
3
4pub struct I2cBase<T> {
6 pub i2c: T,
8 pub freq: Option<Hertz>,
10 pub config: Option<Config>,
12}
13
14impl<T> I2cBase<T> {
16 #[inline]
18 pub fn new(i2c: T) -> Self {
19 Self { i2c, freq: None, config: None }
20 }
21
22 #[inline]
24 pub fn freq(mut self, freq: Hertz) -> Self {
25 self.freq = Some(freq);
26 self
27 }
28
29 #[inline]
31 pub fn config(mut self, config: Config) -> Self {
32 self.config = Some(config);
33 self
34 }
35
36 #[inline]
38 pub fn set_freq(&mut self, freq: Hertz) {
39 self.freq = Some(freq);
40 }
41
42 #[inline]
44 pub fn set_config(&mut self, config: Config) {
45 self.config = Some(config);
46 }
47}