use serde::Deserialize;
#[derive(Debug, Deserialize)]
pub struct EmDatacenterResp {
pub success: Option<bool>,
pub message: Option<String>,
pub code: Option<i64>,
pub result: Option<EmDatacenterResult>,
}
impl EmDatacenterResp {
pub fn check_error(&self, report_name: &str) -> Option<String> {
if self.success == Some(false) {
return Some(format!(
"Eastmoney report '{}' unavailable: {}",
report_name,
self.message.as_deref().unwrap_or("unknown error")
));
}
None
}
}
#[derive(Debug, Deserialize)]
pub struct EmDatacenterResult {
#[serde(default)]
pub data: Vec<serde_json::Value>,
pub pages: Option<i64>,
}
#[derive(Debug, Deserialize)]
pub struct ClistResp {
pub data: Option<ClistRespData>,
}
#[derive(Debug, Deserialize)]
pub struct ClistRespData {
pub diff: Option<Vec<serde_json::Value>>,
#[serde(default)]
pub total: Option<i64>,
}
#[derive(Debug, Deserialize)]
pub struct KlineResp {
pub data: Option<KlineRespData>,
}
#[derive(Debug, Deserialize)]
pub struct KlineRespData {
pub klines: Option<Vec<String>>,
}