meteofrance/model/
rain.rs

1#[derive(Clone, Debug, PartialEq, serde::Deserialize)]
2#[cfg_attr(test, serde(deny_unknown_fields))]
3pub struct Rain {
4    pub position: super::Position,
5    #[serde(deserialize_with = "super::de::timestamp")]
6    pub updated_on: chrono::NaiveDateTime,
7    pub forecast: Vec<Forecast>,
8    pub quality: u8,
9}
10
11#[derive(Clone, Debug, PartialEq, serde::Deserialize)]
12#[cfg_attr(test, serde(deny_unknown_fields))]
13pub struct Forecast {
14    #[serde(deserialize_with = "super::de::timestamp")]
15    pub dt: chrono::NaiveDateTime,
16    pub rain: u8,
17    pub desc: String,
18}
19
20#[cfg(test)]
21mod test {
22    #[test]
23    fn get() -> crate::Result {
24        let client = crate::Client::default();
25        let rain = client.rain(48.8075, 2.24028);
26
27        assert!(dbg!(rain).is_ok());
28
29        Ok(())
30    }
31
32    #[test]
33    fn not_covered() -> crate::Result {
34        let client = crate::Client::default();
35        let rain = client.rain(45.508, -73.58);
36
37        assert!(rain.is_err());
38
39        Ok(())
40    }
41}