1use serde::{Deserialize, Serialize};
2
3use crate::front::HqTrendSlice;
4
5pub trait Handler {
6 fn to_json(&self) -> String
7 where
8 Self: Serialize,
9 {
10 serde_json::to_string(&self).unwrap()
11 }
12 fn get_datetime(&self) -> String;
13 fn get_code(&self) -> String;
14 fn get_date(&self) -> String;
15 fn get_open(&self) -> f64;
16 fn get_close(&self) -> f64;
17 fn get_high(&self) -> f64;
18 fn get_low(&self) -> f64;
19 fn get_vol(&self) -> f64;
20 fn get_amount(&self) -> f64;
21
22 fn set_datetime(&mut self, datetime: String) {}
23 fn set_code(&mut self, code: String) {}
24 fn set_date(&mut self, date: String) {}
25 fn set_open(&mut self, open: f64) {}
26 fn set_close(&mut self, close: f64) {}
27 fn set_high(&mut self, high: f64) {}
28 fn set_low(&mut self, low: f64) {}
29 fn set_vol(&mut self, vol: f64) {}
30 fn set_amount(&mut self, amount: f64) {}
31 fn to_hqchart_trend_slice(&self) -> HqTrendSlice {
32 HqTrendSlice {
33 price: self.get_close(),
34 open: self.get_open(),
35 high: self.get_high(),
36 low: self.get_low(),
37 vol: self.get_vol(),
38 amount: self.get_amount(),
39 time: self.get_datetime(),
40 avprice: self.get_amount() / self.get_vol(),
41 increase: 0.0,
42 risefall: 0.0,
43 code: self.get_code(),
44 close: self.get_close(),
45 }
46 }
47}
48
49