owm_rs/owm/weather/
structures.rs1use crate::owm::geocoding::structures::CoordinatesValues;
2use serde::Deserialize;
3
4#[derive(Deserialize, Debug)]
5pub struct WeatherData {
6 pub coord: CoordinatesValues,
7 pub weather: Vec<WeatherNode>,
8 pub base: String,
9 pub main: WeatherMainNode,
10 pub visibility: i32,
11 pub wind: WeatherWindNode,
12 #[serde(default)]
13 pub rain: WeatherRainNode,
14 pub clouds: WeatherCloudNode,
15 pub dt: i32,
16 pub sys: WeatherSystemNode,
17 pub timezone: i32,
18 pub id: i32,
19 pub name: String,
20 pub cod: i32,
21}
22
23#[derive(Deserialize, Debug)]
24pub struct WeatherNode {
25 pub id: u32,
26 pub main: String,
27 pub description: String,
28 pub icon: String,
29}
30
31#[derive(Deserialize, Debug)]
32pub struct WeatherMainNode {
33 pub temp: f32,
34 pub feels_like: f32,
35 pub temp_min: f32,
36 pub temp_max: f32,
37 pub pressure: i32,
38 pub humidity: i32,
39 #[serde(default)]
40 pub sea_level: i32,
41 #[serde(default)]
42 pub grnd_level: i32,
43}
44
45#[derive(Deserialize, Debug)]
46pub struct WeatherWindNode {
47 pub speed: f32,
48 pub deg: i32,
49 #[serde(default)]
50 pub gust: f32,
51}
52
53#[derive(Deserialize, Debug, Default)]
54pub struct WeatherRainNode {
55 #[serde(rename = "1h")]
56 pub one_hour: f32,
57}
58
59#[derive(Deserialize, Debug)]
60pub struct WeatherCloudNode {
61 pub all: i32,
62}
63
64#[derive(Deserialize, Debug)]
65pub struct WeatherSystemNode {
66 #[serde(rename = "type")]
67 pub sys_type: i32,
68 pub id: i32,
69 pub country: String,
70 pub sunrise: i32,
71 pub sunset: i32,
72}