rust_okx/api/public_data/
responses.rs1use serde::Deserialize;
2
3use crate::{NumberString, model::InstType};
4
5mod edge;
6
7pub use edge::*;
8
9#[derive(Debug, Clone, Deserialize)]
14#[serde(rename_all = "camelCase")]
15#[non_exhaustive]
16pub struct Instrument {
17 pub inst_type: InstType,
19 pub inst_id: String,
21 #[serde(default)]
23 pub uly: String,
24 #[serde(default)]
26 pub inst_family: String,
27 #[serde(default)]
29 pub base_ccy: String,
30 #[serde(default)]
32 pub quote_ccy: String,
33 #[serde(default)]
35 pub settle_ccy: String,
36 #[serde(default)]
38 pub lot_sz: NumberString,
39 #[serde(default)]
41 pub tick_sz: NumberString,
42 #[serde(default)]
44 pub min_sz: NumberString,
45 #[serde(default)]
47 pub state: String,
48}
49
50#[derive(Debug, Clone, Deserialize)]
52#[serde(rename_all = "camelCase")]
53#[non_exhaustive]
54pub struct SystemTime {
55 pub ts: NumberString,
57}
58
59#[derive(Debug, Clone, Deserialize)]
61#[serde(rename_all = "camelCase")]
62#[non_exhaustive]
63pub struct OpenInterest {
64 pub inst_type: InstType,
66 pub inst_id: String,
68 #[serde(default)]
70 pub oi: NumberString,
71 #[serde(default)]
73 pub oi_ccy: NumberString,
74 #[serde(default)]
76 pub ts: NumberString,
77}
78
79#[derive(Debug, Clone, Deserialize)]
81#[serde(rename_all = "camelCase")]
82#[non_exhaustive]
83pub struct FundingRate {
84 #[serde(default)]
86 pub inst_type: String,
87 pub inst_id: String,
89 #[serde(default)]
91 pub funding_rate: NumberString,
92 #[serde(default)]
94 pub next_funding_rate: NumberString,
95 #[serde(default)]
97 pub funding_time: NumberString,
98 #[serde(default)]
100 pub next_funding_time: NumberString,
101}
102
103#[derive(Debug, Clone, Deserialize)]
105#[serde(rename_all = "camelCase")]
106#[non_exhaustive]
107pub struct FundingRateHistory {
108 pub inst_id: String,
110 #[serde(default)]
112 pub funding_rate: NumberString,
113 #[serde(default)]
115 pub realized_rate: NumberString,
116 #[serde(default)]
118 pub funding_time: NumberString,
119 #[serde(default)]
121 pub method: String,
122}
123
124#[derive(Debug, Clone, Deserialize)]
126#[serde(rename_all = "camelCase")]
127#[non_exhaustive]
128pub struct PriceLimit {
129 pub inst_id: String,
131 #[serde(default)]
133 pub buy_lmt: NumberString,
134 #[serde(default)]
136 pub sell_lmt: NumberString,
137 #[serde(default)]
139 pub ts: NumberString,
140}
141
142#[derive(Debug, Clone, Deserialize)]
144#[serde(rename_all = "camelCase")]
145#[non_exhaustive]
146pub struct MarkPrice {
147 pub inst_type: InstType,
149 pub inst_id: String,
151 #[serde(default)]
153 pub mark_px: NumberString,
154 #[serde(default)]
156 pub ts: NumberString,
157}
158
159#[derive(Debug, Clone, Deserialize)]
161#[serde(rename_all = "camelCase")]
162#[non_exhaustive]
163pub struct DeliveryExercise {
164 #[serde(default)]
166 pub inst_type: String,
167 #[serde(default)]
169 pub inst_id: String,
170 #[serde(default)]
172 pub px: NumberString,
173 #[serde(rename = "type", default)]
175 pub exercise_type: String,
176 #[serde(default)]
178 pub ts: NumberString,
179}
180
181#[derive(Debug, Clone, Deserialize)]
183#[serde(rename_all = "camelCase")]
184#[non_exhaustive]
185pub struct PositionTier {
186 pub inst_type: InstType,
188 #[serde(default)]
190 pub td_mode: String,
191 #[serde(default)]
193 pub inst_id: String,
194 #[serde(default)]
196 pub tier: String,
197 #[serde(default)]
199 pub min_sz: NumberString,
200 #[serde(default)]
202 pub max_sz: NumberString,
203 #[serde(default)]
205 pub imr: NumberString,
206 #[serde(default)]
208 pub mmr: NumberString,
209}
210
211#[derive(Debug, Clone, Deserialize)]
213#[serde(rename_all = "camelCase")]
214#[non_exhaustive]
215pub struct InsuranceFund {
216 #[serde(default)]
218 pub inst_type: String,
219 #[serde(rename = "type", default)]
221 pub fund_type: String,
222 #[serde(default)]
224 pub ccy: String,
225 #[serde(default)]
227 pub amt: NumberString,
228 #[serde(default)]
230 pub ts: NumberString,
231}
232
233#[derive(Debug, Clone, Deserialize)]
235#[serde(rename_all = "camelCase")]
236#[non_exhaustive]
237pub struct ConvertContractCoin {
238 #[serde(default)]
240 pub inst_id: String,
241 #[serde(default)]
243 pub sz: NumberString,
244 #[serde(default)]
246 pub px: NumberString,
247 #[serde(default)]
249 pub unit: String,
250}