1use derive_new::new;
2use getset::Getters;
3use serde::Deserialize;
4
5#[derive(Deserialize, Debug, Getters)]
6#[serde(rename_all = "camelCase")]
7#[get = "pub"]
8pub struct StationCode {
9 code: String,
10 url_coding: String,
11}
12
13#[derive(Deserialize, Debug, Getters)]
14#[get = "pub"]
15pub struct StationLabel {
16 label: String,
17 value: String,
18}
19
20#[derive(Debug, Getters, new)]
22#[get = "pub"]
23pub struct Station {
24 code: String,
26
27 url_coding: String,
29
30 name: String,
32}
33
34#[derive(Deserialize, Debug, Getters)]
36#[get = "pub"]
37pub struct StationRealtime {
38 #[serde(rename(deserialize = "ListaTreniArrivo"))]
39 arrival_board: Vec<StationTrainRealtime>,
40
41 #[serde(rename(deserialize = "ListaTreniPartenza"))]
42 departure_board: Vec<StationTrainRealtime>,
43}
44
45#[derive(Deserialize, Debug, Getters)]
47#[get = "pub"]
48pub struct StationTrainRealtime {
49 #[serde(rename(deserialize = "Numero"))]
51 number: String,
52
53 #[serde(rename(deserialize = "DescrizioneLocalita"))]
55 destination: String,
56
57 #[serde(rename(deserialize = "OraPassaggio"))]
59 scheduled_time: String,
60
61 #[serde(rename(deserialize = "NuovoOrario"))]
63 forecast_time: String,
64
65 #[serde(rename(deserialize = "Binario"))]
67 platform: String,
68
69 #[serde(rename(deserialize = "Descrizione"))]
71 description: String,
72}