From 26092b2043649a466d07fbb87078adc8c8612621 Mon Sep 17 00:00:00 2001 From: Namilskyy Date: Tue, 21 Oct 2025 18:11:49 +0300 Subject: Started refactoring bad code. Edited: `parser.rs`, `main.rs`, switched weather-structs to `shared.rs` --- src/shared.rs | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 src/shared.rs (limited to 'src/shared.rs') 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>, + pub hourly: Option>, + pub daily: Option>, + pub alerts: Option>, +} +#[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, +} + +#[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, + 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, + pub clouds: u32, + pub pop: f32, + pub rain: Option, + 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, +} \ No newline at end of file -- cgit v1.2.3