rust_okx/api/account/responses/
loans.rs1use serde::Deserialize;
2
3use crate::model::NumberString;
4
5#[derive(Debug, Clone, Deserialize)]
7#[serde(rename_all = "camelCase")]
8#[non_exhaustive]
9pub struct SpotBorrowRepayResult {
10 #[serde(default)]
12 pub ccy: String,
13 #[serde(default)]
15 pub side: String,
16 #[serde(default)]
18 pub amt: NumberString,
19}
20
21#[derive(Debug, Clone, Deserialize)]
23#[serde(rename_all = "camelCase")]
24#[non_exhaustive]
25pub struct SetAutoRepayResult {
26 #[serde(default)]
28 pub auto_repay: bool,
29}
30
31#[derive(Debug, Clone, Deserialize)]
33#[serde(rename_all = "camelCase")]
34#[non_exhaustive]
35pub struct SpotBorrowRepayHistory {
36 #[serde(default)]
38 pub ccy: String,
39 #[serde(default, rename = "type")]
41 pub event_type: String,
42 #[serde(default)]
44 pub amt: NumberString,
45 #[serde(default)]
47 pub acc_borrowed: NumberString,
48 #[serde(default)]
50 pub ts: NumberString,
51}
52
53#[derive(Debug, Clone, Deserialize)]
55#[serde(rename_all = "camelCase")]
56#[non_exhaustive]
57pub struct SetAutoEarnResult {
58 #[serde(default)]
60 pub ccy: String,
61 #[serde(default)]
63 pub auto_earn: bool,
64 #[serde(default)]
66 pub min_rate: NumberString,
67}
68
69#[cfg(test)]
70mod tests {
71 use super::*;
72
73 #[test]
74 fn decodes_spot_borrow_repay_result() {
75 let row: SpotBorrowRepayResult =
76 serde_json::from_str(r#"{"ccy":"USDT","side":"borrow","amt":"5"}"#).unwrap();
77 assert_eq!(row.ccy, "USDT");
78 assert_eq!(row.side, "borrow");
79 }
80}