diff --git a/src/interface.rs b/src/interface.rs index 8b2260a..74f2352 100644 --- a/src/interface.rs +++ b/src/interface.rs @@ -1,6 +1,6 @@ //! I2C/SPI interfaces -use super::{Error, DEVICE_ADDRESS}; +use super::{private, Error, DEVICE_ADDRESS}; use hal::blocking; /// I2C interface @@ -17,7 +17,7 @@ pub struct SpiInterface { } /// Write data -pub trait WriteData { +pub trait WriteData: private::Sealed { /// Error type type Error; /// Write to an u8 register @@ -72,7 +72,7 @@ where } /// Read data -pub trait ReadData { +pub trait ReadData: private::Sealed { /// Error type type Error; /// Read an u8 register diff --git a/src/lib.rs b/src/lib.rs index d6d6535..a94fac8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -567,3 +567,15 @@ pub use ds323x::{ mod ds3231; mod ds3232; mod ds3234; + +mod private { + use super::{ic, interface}; + pub trait Sealed {} + + impl Sealed for interface::SpiInterface {} + impl Sealed for interface::I2cInterface {} + + impl Sealed for ic::DS3231 {} + impl Sealed for ic::DS3232 {} + impl Sealed for ic::DS3234 {} +}