eliminate unused fields

improves performance
This commit is contained in:
Dr. Matthias Ratajczak
2023-01-04 13:07:26 +01:00
parent ec07aba204
commit 63a158f023
-47
View File
@@ -1,5 +1,3 @@
#![allow(dead_code)]
use std::fmt::{Debug, Display}; use std::fmt::{Debug, Display};
use anyhow::Result; use anyhow::Result;
@@ -9,65 +7,20 @@ use serde::{de, Deserialize, Deserializer};
#[derive(Deserialize, Debug)] #[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")] #[serde(rename_all = "PascalCase")]
pub struct Departure { pub struct Departure {
id: String,
dl_id: String,
line_name: String, line_name: String,
direction: String, direction: String,
platform: Platform,
mot: String,
#[serde(default, deserialize_with = "deserialize_realtime")] #[serde(default, deserialize_with = "deserialize_realtime")]
real_time: Option<DateTime<Local>>, real_time: Option<DateTime<Local>>,
#[serde(deserialize_with = "deserialize_timestamp")] #[serde(deserialize_with = "deserialize_timestamp")]
scheduled_time: DateTime<Local>, scheduled_time: DateTime<Local>,
state: Option<String>,
route_changes: Vec<RouteChange>,
diva: Diva,
cancel_reasons: Vec<CancelReason>,
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")]
struct Platform {
name: String,
#[serde(rename = "Type")]
type_: String,
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")]
struct RouteChange {
// fields omitted
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")]
struct Diva {
number: String,
network: String,
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")]
struct CancelReason {
// fields omitted
} }
#[derive(Deserialize, Debug)] #[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")] #[serde(rename_all = "PascalCase")]
pub struct Response { pub struct Response {
name: String,
status: Status,
place: String,
expiration_time: String,
pub departures: Vec<Departure>, pub departures: Vec<Departure>,
} }
#[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")]
struct Status {
code: String,
}
/// Deserialize a timestamp in the form of '/Date(1671713820000-0000)/' /// Deserialize a timestamp in the form of '/Date(1671713820000-0000)/'
fn deserialize_timestamp<'de, D>(deserializer: D) -> Result<DateTime<Local>, D::Error> fn deserialize_timestamp<'de, D>(deserializer: D) -> Result<DateTime<Local>, D::Error>
where where