longbridge/calendar/
types.rs1#![allow(missing_docs)]
2
3use rust_decimal::Decimal;
4use serde::{Deserialize, Serialize};
5
6use crate::utils::counter::deserialize_counter_id_as_symbol;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct CalendarEventsResponse {
11 pub date: String,
13 pub list: Vec<CalendarDateGroup>,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct CalendarDateGroup {
20 pub date: String,
22 pub count: i32,
24 pub infos: Vec<CalendarEventInfo>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct CalendarEventInfo {
31 #[serde(
33 rename = "counter_id",
34 deserialize_with = "deserialize_counter_id_as_symbol"
35 )]
36 pub symbol: String,
37 pub market: String,
39 pub content: String,
41 pub counter_name: String,
43 #[serde(default)]
45 pub date_type: String,
46 pub date: String,
48 #[serde(default)]
50 pub chart_uid: String,
51 pub data_kv: Vec<CalendarDataKv>,
53 #[serde(rename = "type")]
55 pub event_type: String,
56 pub datetime: String,
58 #[serde(default)]
60 pub icon: String,
61 pub star: i32,
63 pub live: Option<serde_json::Value>,
65 pub id: String,
67 #[serde(default)]
69 pub financial_market_time: String,
70 #[serde(default)]
72 pub currency: String,
73 pub ext: Option<serde_json::Value>,
75 #[serde(default)]
77 pub activity_type: String,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize)]
82pub struct CalendarDataKv {
83 pub key: String,
85 pub value: String,
87 #[serde(rename = "type")]
89 pub value_type: String,
90 #[serde(default, with = "crate::serde_utils::decimal_opt_str_is_none")]
92 pub value_raw: Option<Decimal>,
93}
94
95#[derive(Debug, Copy, Clone, Eq, PartialEq, Serialize, Deserialize)]
97pub enum CalendarCategory {
98 #[serde(rename = "report")]
100 Report,
101 #[serde(rename = "dividend")]
103 Dividend,
104 #[serde(rename = "split")]
106 Split,
107 #[serde(rename = "ipo")]
109 Ipo,
110 #[serde(rename = "macrodata")]
112 MacroData,
113 #[serde(rename = "closed")]
115 Closed,
116 #[serde(rename = "meeting")]
118 Meeting,
119 #[serde(rename = "merge")]
121 Merge,
122}