use serde::{Deserialize, Serialize};
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Forecast {
pub coord: Coord,
pub weather: Vec<Weather>,
pub base: String,
pub main: Main,
pub visibility: i64,
pub wind: Wind,
pub rain: Option<Rain>,
pub clouds: Clouds,
pub dt: i64,
pub sys: Sys,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Coord {
pub lon: f64,
pub lat: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Weather {
pub id: i64,
pub main: String,
pub description: String,
pub icon: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Main {
pub temp: f64,
#[serde(rename = "feels_like")]
pub feels_like: f64,
#[serde(rename = "temp_min")]
pub temp_min: f64,
#[serde(rename = "temp_max")]
pub temp_max: f64,
pub pressure: i64,
pub humidity: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Wind {
pub speed: f64,
pub deg: i64,
pub gust: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Rain {
#[serde(rename = "1h")]
pub n1h: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Clouds {
pub all: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Sys {
#[serde(rename = "type")]
pub type_field: i64,
pub id: i64,
pub country: String,
pub sunrise: i64,
pub sunset: i64,
}