pub mod eta; pub mod follow; pub mod route; pub mod train; use crate::Error; use serde::Deserialize; #[derive(Debug, Deserialize, Clone)] pub struct Ctatt { pub tmst: String, #[serde(rename = "errCd")] pub err_cd: String, #[serde(rename = "errNm")] pub err_nm: Option, } pub trait CTAResponse { fn get_header(&self) -> Ctatt; fn check_error(&self) -> Result<(), Error> { let header = self.get_header(); if let Some(err_number) = header.err_nm { Err(Error::CtaError(err_number, header.err_cd)) } else { Ok(()) } } } #[derive(Debug, Deserialize)] pub struct Response { pub ctatt: T, }