1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
//! Describes a sensor measurement. use crate::value::Value; use chrono::prelude::*; /// A sensor measurement. #[derive(Debug)] pub struct Measurement { /// A sensor. For example: `buienradar::6240::wind_speed_bft`. pub sensor: String, /// An attached typed value. pub value: Value, /// Timestamp when the value was actually measured. pub timestamp: DateTime<Local>, } impl Measurement { /// Create a new measurement. pub fn new(sensor: String, value: Value, timestamp: Option<DateTime<Local>>) -> Self { Measurement { sensor, value, timestamp: timestamp.unwrap_or_else(Local::now), } } }