gistools/readers/gbfs/schema_v1/
system_hours.rs1use alloc::{string::String, vec::Vec};
2use serde::{Deserialize, Serialize};
3
4pub type GBFSSystemHoursV1 = GBFSSystemHoursV11;
11
12#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
14pub enum GBFSSystemHourTypeV1 {
15 #[serde(rename = "member")]
17 #[default]
18 Member,
19 #[serde(rename = "nonmember")]
21 NonMember,
22}
23
24#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
26pub enum GBFSSystemHourDayV1 {
27 #[serde(rename = "sun")]
29 #[default]
30 Sun,
31 #[serde(rename = "mon")]
33 Mon,
34 #[serde(rename = "tue")]
36 Tue,
37 #[serde(rename = "wed")]
39 Wed,
40 #[serde(rename = "thu")]
42 Thu,
43 #[serde(rename = "fri")]
45 Fri,
46 #[serde(rename = "sat")]
48 Sat,
49}
50
51#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
53pub struct GBFSSystemHourV1 {
54 pub user_types: Vec<GBFSSystemHourTypeV1>,
56 pub days: Vec<GBFSSystemHourDayV1>,
58 pub start_time: String,
60 pub end_time: String,
62}
63
64#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
66pub struct GBFSSystemHoursDataV1 {
67 pub rental_hours: Vec<GBFSSystemHourV1>,
69}
70
71#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
73pub struct GBFSSystemHoursV11 {
74 pub last_updated: u64,
76 pub ttl: u64,
78 pub version: String,
80 pub data: GBFSSystemHoursDataV1,
82}
83
84#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq)]
86pub struct GBFSSystemHoursV10 {
87 pub last_updated: u64,
89 pub ttl: u64,
91 pub data: GBFSSystemHoursDataV1,
93}