35 lines
704 B
Rust
35 lines
704 B
Rust
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<String>,
|
|
}
|
|
|
|
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<T: CTAResponse> {
|
|
pub ctatt: T,
|
|
}
|