mifi_rs/
base.rs

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