summaryrefslogtreecommitdiff
path: root/src/shared.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared.rs')
-rw-r--r--src/shared.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/shared.rs b/src/shared.rs
new file mode 100644
index 0000000..75a4d1c
--- /dev/null
+++ b/src/shared.rs
@@ -0,0 +1,43 @@
+use serde::{Serialize, Deserialize};
+//API answer struct`s
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct WeatherData {
+ pub latitude: f64,
+ pub longitude: f64,
+ pub generationtime_ms: Option<f64>,
+ pub utc_offset_seconds: Option<i32>,
+ pub timezone: Option<String>,
+ pub timezone_abbreviation: Option<String>,
+ pub elevation: Option<f64>,
+ pub current_units: Option<CurrentUnits>,
+ pub current: Current,
+ pub hourly_units: Option<HourlyUnits>,
+ pub hourly: Hourly,
+}
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Current {
+ pub time: String,
+ pub temperature_2m: f32,
+ pub wind_speed_10m: f32,
+}
+#[derive(Debug, Serialize, Deserialize)]
+pub struct CurrentUnits {
+ pub time: Option<String>,
+ pub temperature_2m: Option<String>,
+ pub wind_speed_10m: Option<String>,
+}
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Hourly {
+ pub time: Vec<String>,
+ pub temperature_2m: Vec<f32>,
+ pub relative_humidity_2m: Vec<u32>,
+ pub wind_speed_10m: Vec<f32>,
+}
+#[derive(Debug, Serialize, Deserialize)]
+pub struct HourlyUnits {
+ pub time: Option<String>,
+ pub temperature_2m: Option<String>,
+ pub relative_humidity_2m: Option<String>,
+ pub wind_speed_10m: Option<String>,
+}