1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Serialize, Deserialize, Clone)]
7pub struct Sensor {
8 pub id: String,
9 pub sensor_type: String,
10 pub unit: String,
11 pub location: Location,
12}
13
14#[derive(Debug, Serialize, Deserialize, Clone)]
16pub struct Location {
17 pub latitude: f64,
18 pub longitude: f64,
19 pub elevation: Option<f64>,
20}
21
22#[derive(Debug, Serialize, Deserialize, Clone)]
24pub struct Observation {
25 pub timestamp: String,
26 pub value: f64,
27 pub sensor_id: String,
28}
29
30#[derive(Debug, Serialize, Deserialize, Clone)]
32pub struct CsdifDocument {
33 pub sensors: Vec<Sensor>,
34 pub observations: Vec<Observation>,
35}
36