eliminate unused fields
improves performance
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user