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 oi_usd: NumberString,
77 #[serde(default)]
79 pub ts: NumberString,
80}
81
82#[derive(Debug, Clone, Deserialize)]
84#[serde(rename_all = "camelCase")]
85#[non_exhaustive]
86pub struct FundingRate {
87 #[serde(default)]
89 pub inst_type: String,
90 pub inst_id: String,
92 #[serde(default)]
94 pub funding_rate: NumberString,
95 #[serde(default)]
97 pub next_funding_rate: NumberString,
98 #[serde(default)]
100 pub funding_time: NumberString,
101 #[serde(default)]
103 pub next_funding_time: NumberString,
104}
105
106#[derive(Debug, Clone, Deserialize)]
108#[serde(rename_all = "camelCase")]
109#[non_exhaustive]
110pub struct FundingRateHistory {
111 pub inst_id: String,
113 #[serde(default)]
115 pub inst_type: String,
116 #[serde(default)]
118 pub formula_type: String,
119 #[serde(default)]
121 pub funding_rate: NumberString,
122 #[serde(default)]
124 pub realized_rate: NumberString,
125 #[serde(default)]
127 pub funding_time: NumberString,
128 #[serde(default)]
130 pub method: String,
131}
132
133#[derive(Debug, Clone, Deserialize)]
135#[serde(rename_all = "camelCase")]
136#[non_exhaustive]
137pub struct PriceLimit {
138 #[serde(default)]
140 pub inst_type: String,
141 pub inst_id: String,
143 #[serde(default)]
145 pub buy_lmt: NumberString,
146 #[serde(default)]
148 pub sell_lmt: NumberString,
149 #[serde(default)]
151 pub enabled: bool,
152 #[serde(default)]
154 pub ts: NumberString,
155}
156
157#[derive(Debug, Clone, Deserialize)]
159#[serde(rename_all = "camelCase")]
160#[non_exhaustive]
161pub struct MarkPrice {
162 pub inst_type: InstType,
164 pub inst_id: String,
166 #[serde(default)]
168 pub mark_px: NumberString,
169 #[serde(default)]
171 pub ts: NumberString,
172}
173
174#[derive(Debug, Clone, Deserialize)]
176#[serde(rename_all = "camelCase")]
177#[non_exhaustive]
178pub struct DeliveryExercise {
179 #[serde(default)]
181 pub inst_type: String,
182 #[serde(default)]
184 pub inst_id: String,
185 #[serde(default)]
187 pub px: NumberString,
188 #[serde(rename = "type", default)]
190 pub exercise_type: String,
191 #[serde(default)]
193 pub ts: NumberString,
194}
195
196#[derive(Debug, Clone, Deserialize)]
198#[serde(rename_all = "camelCase")]
199#[non_exhaustive]
200pub struct PositionTier {
201 pub inst_type: InstType,
203 #[serde(default)]
205 pub td_mode: String,
206 #[serde(default)]
208 pub inst_id: String,
209 #[serde(default)]
211 pub tier: String,
212 #[serde(default)]
214 pub min_sz: NumberString,
215 #[serde(default)]
217 pub max_sz: NumberString,
218 #[serde(default)]
220 pub imr: NumberString,
221 #[serde(default)]
223 pub mmr: NumberString,
224}
225
226#[derive(Debug, Clone, Deserialize)]
228#[serde(rename_all = "camelCase")]
229#[non_exhaustive]
230pub struct InsuranceFund {
231 #[serde(default)]
233 pub inst_type: String,
234 #[serde(rename = "type", default)]
236 pub fund_type: String,
237 #[serde(default)]
239 pub ccy: String,
240 #[serde(default)]
242 pub amt: NumberString,
243 #[serde(default)]
245 pub ts: NumberString,
246}
247
248#[derive(Debug, Clone, Deserialize)]
250#[serde(rename_all = "camelCase")]
251#[non_exhaustive]
252pub struct ConvertContractCoin {
253 #[serde(default)]
255 pub inst_id: String,
256 #[serde(default)]
258 pub sz: NumberString,
259 #[serde(default)]
261 pub px: NumberString,
262 #[serde(default)]
264 pub unit: String,
265}