at_api_rs/types/
mod.rs

1//! Types and structures returned from the Auckland Transport API.
2
3pub mod gtfs;
4
5use serde::Deserialize;
6use serde_repr::Deserialize_repr;
7
8use self::gtfs::Entity;
9
10#[derive(Debug, Deserialize, Clone)]
11pub struct ATResponse {
12    pub status: String,
13    pub response: Response,
14    pub error: Option<()>,
15}
16
17#[derive(Debug, Deserialize, Clone)]
18pub struct Response {
19    pub header: Header,
20    pub entity: Vec<Entity>,
21}
22
23#[derive(Debug, Deserialize, Clone)]
24pub struct Header {
25    pub gtfs_realtime_version: String,
26    #[serde(default)]
27    pub incrementality: Incrementality,
28    pub timestamp: Option<f64>,
29}
30
31#[derive(Debug, Deserialize_repr, Clone, Copy)]
32#[repr(u8)]
33pub enum Incrementality {
34    FullDataset = 0,
35    Differential = 1,
36}
37
38impl Default for Incrementality {
39    fn default() -> Self {
40        Self::FullDataset
41    }
42}