mobilitydata_client/models/
gbfs_feed.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct GbfsFeed {
16 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
18 pub id: Option<String>,
19 #[serde(rename = "data_type", skip_serializing_if = "Option::is_none")]
20 pub data_type: Option<DataType>,
21 #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
23 pub created_at: Option<String>,
24 #[serde(rename = "external_ids", skip_serializing_if = "Option::is_none")]
26 pub external_ids: Option<Vec<models::ExternalId>>,
27 #[serde(rename = "provider", skip_serializing_if = "Option::is_none")]
29 pub provider: Option<String>,
30 #[serde(rename = "feed_contact_email", skip_serializing_if = "Option::is_none")]
32 pub feed_contact_email: Option<String>,
33 #[serde(rename = "source_info", skip_serializing_if = "Option::is_none")]
34 pub source_info: Option<Box<models::SourceInfo>>,
35 #[serde(rename = "redirects", skip_serializing_if = "Option::is_none")]
36 pub redirects: Option<Vec<models::Redirect>>,
37 #[serde(rename = "locations", skip_serializing_if = "Option::is_none")]
38 pub locations: Option<Vec<models::Location>>,
39 #[serde(rename = "system_id", skip_serializing_if = "Option::is_none")]
41 pub system_id: Option<String>,
42 #[serde(rename = "provider_url", skip_serializing_if = "Option::is_none")]
44 pub provider_url: Option<String>,
45 #[serde(rename = "versions", skip_serializing_if = "Option::is_none")]
47 pub versions: Option<Vec<models::GbfsVersion>>,
48 #[serde(rename = "bounding_box", skip_serializing_if = "Option::is_none")]
49 pub bounding_box: Option<Box<models::BoundingBox>>,
50 #[serde(rename = "bounding_box_generated_at", skip_serializing_if = "Option::is_none")]
52 pub bounding_box_generated_at: Option<String>,
53}
54
55impl GbfsFeed {
56 pub fn new() -> GbfsFeed {
57 GbfsFeed {
58 id: None,
59 data_type: None,
60 created_at: None,
61 external_ids: None,
62 provider: None,
63 feed_contact_email: None,
64 source_info: None,
65 redirects: None,
66 locations: None,
67 system_id: None,
68 provider_url: None,
69 versions: None,
70 bounding_box: None,
71 bounding_box_generated_at: None,
72 }
73 }
74}
75#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
77pub enum DataType {
78 #[serde(rename = "gtfs")]
79 Gtfs,
80 #[serde(rename = "gtfs_rt")]
81 GtfsRt,
82 #[serde(rename = "gbfs")]
83 Gbfs,
84}
85
86impl Default for DataType {
87 fn default() -> DataType {
88 Self::Gtfs
89 }
90}
91