summaryrefslogtreecommitdiff
path: root/src/shared.rs
diff options
context:
space:
mode:
authorNamilskyy <alive6863@gmail.com>2025-10-21 18:11:49 +0300
committerNamilskyy <alive6863@gmail.com>2025-10-21 18:11:49 +0300
commit26092b2043649a466d07fbb87078adc8c8612621 (patch)
tree965a76cb59a9f6afba7c7f4f8a48cd599d698ddb /src/shared.rs
parent1ad9fda27ca8757dfc6a3d4ee0f43232146b7f98 (diff)
Started refactoring bad code. Edited: `parser.rs`, `main.rs`, switched weather-structs to `shared.rs`
Diffstat (limited to 'src/shared.rs')
-rw-r--r--src/shared.rs115
1 files changed, 115 insertions, 0 deletions
diff --git a/src/shared.rs b/src/shared.rs
new file mode 100644
index 0000000..1afee09
--- /dev/null
+++ b/src/shared.rs
@@ -0,0 +1,115 @@
+//API answer struct`s
+#[derive(Debug, Serialize, Deserialize)]
+pub struct WeatherData {
+ pub lat: f64,
+ pub lon: f64,
+ pub timezone: String,
+ pub timezone_offset: i32,
+ pub current: Current,
+ pub minutely: Option<Vec<Minutely>>,
+ pub hourly: Option<Vec<Hourly>>,
+ pub daily: Option<Vec<Daily>>,
+ pub alerts: Option<Vec<Alert>>,
+}
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Current {
+ pub dt: u64,
+ pub sunrise: u64,
+ pub sunset: u64,
+ pub temp: f32,
+ pub feels_like: f32,
+ pub pressure: u32,
+ pub humidity: u32,
+ pub dew_point: f32,
+ pub uvi: f32,
+ pub clouds: u32,
+ pub visibility: u32,
+ pub wind_speed: f32,
+ pub wind_deg: u32,
+ pub wind_gust: f32,
+ pub weather: Vec<Weather>,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Weather {
+ pub id: u32,
+ pub main: String,
+ pub description: String,
+ pub icon: String,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Minutely {
+ pub dt: u64,
+ pub precipitation: f32,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Hourly {
+ pub dt: u64,
+ pub temp: f32,
+ pub feels_like: f32,
+ pub pressure: u32,
+ pub humidity: u32,
+ pub dew_point: f32,
+ pub uvi: f32,
+ pub clouds: u32,
+ pub visibility: u32,
+ pub wind_speed: f32,
+ pub wind_deg: u32,
+ pub wind_gust: f32,
+ pub weather: Vec<Weather>,
+ pub pop: f32,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Daily {
+ pub dt: u64,
+ pub sunrise: u64,
+ pub sunset: u64,
+ pub moonrise: u64,
+ pub moonset: u64,
+ pub moon_phase: f32,
+ pub summary: String,
+ pub temp: Temp,
+ pub feels_like: FeelsLike,
+ pub pressure: u32,
+ pub humidity: u32,
+ pub dew_point: f32,
+ pub wind_speed: f32,
+ pub wind_deg: u32,
+ pub wind_gust: f32,
+ pub weather: Vec<Weather>,
+ pub clouds: u32,
+ pub pop: f32,
+ pub rain: Option<f32>,
+ pub uvi: f32,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Temp {
+ pub day: f32,
+ pub min: f32,
+ pub max: f32,
+ pub night: f32,
+ pub eve: f32,
+ pub morn: f32,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct FeelsLike {
+ pub day: f32,
+ pub night: f32,
+ pub eve: f32,
+ pub morn: f32,
+}
+
+#[derive(Debug, Serialize, Deserialize)]
+pub struct Alert {
+ pub sender_name: String,
+ pub event: String,
+ pub start: u64,
+ pub end: u64,
+ pub description: String,
+ pub tags: Vec<String>,
+} \ No newline at end of file