use crate::error::SensorError;
use crate::sensors::{dht11::Dht11Data, fire::FireSensorData};
use async_trait::async_trait;
#[async_trait]
pub trait TemperatureSensor: Send + Sync {
fn read(&self) -> Result<Dht11Data, SensorError>;
async fn read_async(&self) -> Result<Dht11Data, SensorError>;
}
#[async_trait]
pub trait FireDetector: Send + Sync {
fn read(&self) -> Result<FireSensorData, SensorError>;
async fn read_async(&self) -> Result<FireSensorData, SensorError>;
async fn start_monitoring(&self, check_interval_ms: u64) -> Result<(), SensorError>;
fn stop_monitoring(&self);
}