rust_okx/api/market/
requests.rs1use serde::Serialize;
2
3#[derive(Debug, Clone, Serialize)]
5pub struct CandlesticksRequest {
6 #[serde(rename = "instId")]
7 inst_id: String,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 after: Option<String>,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 before: Option<String>,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 bar: Option<String>,
14 #[serde(skip_serializing_if = "Option::is_none")]
15 limit: Option<u32>,
16}
17
18impl CandlesticksRequest {
19 pub fn new(inst_id: impl Into<String>) -> Self {
21 Self {
22 inst_id: inst_id.into(),
23 after: None,
24 before: None,
25 bar: None,
26 limit: None,
27 }
28 }
29
30 pub fn after(mut self, after: impl Into<String>) -> Self {
32 self.after = Some(after.into());
33 self
34 }
35
36 pub fn before(mut self, before: impl Into<String>) -> Self {
38 self.before = Some(before.into());
39 self
40 }
41
42 pub fn bar(mut self, bar: impl Into<String>) -> Self {
44 self.bar = Some(bar.into());
45 self
46 }
47
48 pub fn limit(mut self, limit: u32) -> Self {
50 self.limit = Some(limit);
51 self
52 }
53}
54
55#[derive(Debug, Clone, Serialize)]
57pub struct HistoryTradesRequest {
58 #[serde(rename = "instId")]
59 inst_id: String,
60 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
61 trade_type: Option<String>,
62 #[serde(skip_serializing_if = "Option::is_none")]
63 after: Option<String>,
64 #[serde(skip_serializing_if = "Option::is_none")]
65 before: Option<String>,
66 #[serde(skip_serializing_if = "Option::is_none")]
67 limit: Option<u32>,
68}
69
70impl HistoryTradesRequest {
71 pub fn new(inst_id: impl Into<String>) -> Self {
73 Self {
74 inst_id: inst_id.into(),
75 trade_type: None,
76 after: None,
77 before: None,
78 limit: None,
79 }
80 }
81
82 pub fn trade_type(mut self, trade_type: impl Into<String>) -> Self {
84 self.trade_type = Some(trade_type.into());
85 self
86 }
87
88 pub fn after(mut self, after: impl Into<String>) -> Self {
90 self.after = Some(after.into());
91 self
92 }
93
94 pub fn before(mut self, before: impl Into<String>) -> Self {
96 self.before = Some(before.into());
97 self
98 }
99
100 pub fn limit(mut self, limit: u32) -> Self {
102 self.limit = Some(limit);
103 self
104 }
105}