mod mirrors;
pub use mirrors::*;
mod telescope;
use serde::Deserialize;
pub use telescope::*;
#[derive(thiserror::Error, Debug)]
pub enum PressureError {
#[cfg(feature = "bzip2")]
#[error("Failed to decompress the file")]
Decompress(#[from] bzip2::Error),
#[error("Failed to open the pressure file")]
Io(#[from] std::io::Error),
#[error("Failed to deserialize the CSV file")]
Csv(#[from] csv::Error),
#[error("Failed to apply geometric transformation")]
Geotrans(#[from] geotrans::Error),
#[error("Missing decompression protocol")]
Decompression,
}
type Result<T> = std::result::Result<T, PressureError>;
#[derive(Deserialize, Debug, PartialEq)]
struct Record {
#[serde(rename = "Area in TCS[i] (m^2)")]
area_i: f64,
#[serde(rename = "Area in TCS[j] (m^2)")]
area_j: f64,
#[serde(rename = "Area in TCS[k] (m^2)")]
area_k: f64,
#[serde(rename = "Pressure (Pa)")]
pressure: f64,
#[serde(rename = "X (m)")]
x: f64,
#[serde(rename = "Y (m)")]
y: f64,
#[serde(rename = "Z (m)")]
z: f64,
}