parse_monitors/pressure/
mod.rs1mod mirrors;
34pub use mirrors::*;
35mod telescope;
36use serde::Deserialize;
37pub use telescope::*;
38
39#[derive(thiserror::Error, Debug)]
40pub enum PressureError {
41 #[cfg(feature = "bzip2")]
42 #[error("Failed to decompress the file")]
43 Decompress(#[from] bzip2::Error),
44 #[error("Failed to open the pressure file")]
45 Io(#[from] std::io::Error),
46 #[error("Failed to deserialize the CSV file")]
47 Csv(#[from] csv::Error),
48 #[error("Failed to apply geometric transformation")]
49 Geotrans(#[from] geotrans::Error),
50 #[error("Missing decompression protocol")]
51 Decompression,
52}
53type Result<T> = std::result::Result<T, PressureError>;
54
55#[derive(Deserialize, Debug, PartialEq)]
56struct Record {
57 #[serde(rename = "Area in TCS[i] (m^2)")]
58 area_i: f64,
59 #[serde(rename = "Area in TCS[j] (m^2)")]
60 area_j: f64,
61 #[serde(rename = "Area in TCS[k] (m^2)")]
62 area_k: f64,
63 #[serde(rename = "Pressure (Pa)")]
66 pressure: f64,
67 #[serde(rename = "X (m)")]
68 x: f64,
69 #[serde(rename = "Y (m)")]
70 y: f64,
71 #[serde(rename = "Z (m)")]
72 z: f64,
73}