use chrono::{DateTime, FixedOffset}; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] pub struct Bilingual { pub fr: String, pub nl: String, } #[derive(Clone, Debug)] pub struct StopInfo { pub id: String, pub name: Bilingual, pub lat: f64, pub lon: f64, } #[derive(Clone, Copy, Debug, PartialEq, Serialize)] #[serde(rename_all = "lowercase")] pub enum VehicleKind { Tram, Metro, Bus, Train, Bike, } #[derive(Clone, Debug)] pub struct RouteInfo { pub line: String, pub route_id: String, pub kind: VehicleKind, pub color: String, pub text_color: String, } #[derive(Clone, Debug)] pub struct Passage { pub line: String, pub destination: Bilingual, pub expected: DateTime, } #[derive(Clone, Debug, PartialEq)] pub struct VehiclePosition { pub terminus: String, pub point_id: String, pub distance_m: u32, } #[derive(Clone, Debug, PartialEq)] pub struct LineSequence { pub line: String, pub destination: Bilingual, pub stops: Vec, } #[derive(Clone, Debug, PartialEq)] pub struct Disruption { pub en: Option, pub fr: Option, pub nl: Option, pub priority: i64, pub lines: Vec, pub points: Vec, } #[derive(Clone, Debug, PartialEq)] pub struct EndNotice { pub line: String, pub message: Bilingual, }