trading_charts/data/options/handle_scale/
axis_pressed_mouse_move.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Clone)]
4pub struct AxisPressedMouseMoveOptions {
5 #[serde(rename = "time", default = "defaults::time")]
6 time: bool,
7
8 #[serde(rename = "price", default = "defaults::price")]
9 price: bool,
10}
11
12impl AxisPressedMouseMoveOptions {
13 pub fn new() -> Self {
14 Self::default()
15 }
16
17 pub fn new_with_params(time: bool, price: bool) -> Self {
18 Self {
19 time,
20 price,
21 }
22 }
23
24 pub fn with_time(self, time: bool) -> Self {
25 Self {
26 time,
27 ..self
28 }
29 }
30
31 pub fn with_price(self, price: bool) -> Self {
32 Self {
33 price,
34 ..self
35 }
36 }
37
38 pub fn time(&self) -> bool {
39 self.time
40 }
41
42 pub fn set_time(&mut self, time: bool) {
43 self.time = time;
44 }
45
46 pub fn price(&self) -> bool {
47 self.price
48 }
49
50 pub fn set_price(&mut self, price: bool) {
51 self.price = price;
52 }
53}
54
55impl Default for AxisPressedMouseMoveOptions {
56 fn default() -> Self {
57 Self {
58 time: defaults::time(),
59 price: defaults::price(),
60 }
61 }
62}
63
64mod defaults {
65 pub(super) fn time() -> bool {
66 true
67 }
68
69 pub(super) fn price() -> bool {
70 true
71 }
72}