crypto_com_exchange/model/
user.rs1use serde::{Serialize, Deserialize};
2use serde_aux::prelude::deserialize_number_from_string;
3
4
5#[derive(Serialize, Deserialize, Debug)]
7pub struct BalanceResult {
8 pub subscription: String,
10
11 pub data: Vec<Balance>
13}
14
15#[derive(Serialize, Deserialize, Debug)]
17pub struct Balance {
18 pub currency: String,
20
21 pub balance: f32,
23
24 pub available: f32,
26
27 pub order: f32,
29
30 pub stake: f32
32
33}
34
35
36#[derive(Serialize, Deserialize, Debug)]
37pub struct BalanceResult2 {
38 pub subscription: String,
40
41 pub data: Vec<Balance>
43}
44
45#[derive(Serialize, Deserialize, Debug)]
47pub struct Balance2 {
48 #[serde(deserialize_with = "deserialize_number_from_string")]
50 pub total_available_balance: f64,
51
52 #[serde(deserialize_with = "deserialize_number_from_string")]
54 pub total_margin_balance: f64,
55
56 #[serde(deserialize_with = "deserialize_number_from_string")]
58 pub total_initial_margin: f64,
59
60 #[serde(deserialize_with = "deserialize_number_from_string")]
62 pub total_maintenance_margin: f64,
63
64 #[serde(deserialize_with = "deserialize_number_from_string")]
66 pub total_position_cost: f64,
67
68 #[serde(deserialize_with = "deserialize_number_from_string")]
70 pub total_cash_balance: f64,
71
72 #[serde(deserialize_with = "deserialize_number_from_string")]
74 pub total_collateral_value: f64,
75
76 #[serde(deserialize_with = "deserialize_number_from_string")]
78 pub total_session_unrealized_pnl: f64,
79
80 pub instrument_name: String,
82
83 #[serde(deserialize_with = "deserialize_number_from_string")]
85 pub total_session_realized_pnl: f64,
86
87 pub is_liquidating: bool,
89
90 #[serde(deserialize_with = "deserialize_number_from_string")]
92 pub total_effective_leverage: f64,
93
94 #[serde(deserialize_with = "deserialize_number_from_string")]
96 pub position_limit: f64,
97
98 #[serde(deserialize_with = "deserialize_number_from_string")]
100 pub used_position_limit: f64,
101
102 pub position_balances: Vec<PositionBalance>
104
105}
106
107#[derive(Serialize, Deserialize, Debug)]
109pub struct PositionBalance {
110
111 pub instrument_name: String,
113
114 #[serde(deserialize_with = "deserialize_number_from_string")]
116 pub quantity: f64,
117
118 #[serde(deserialize_with = "deserialize_number_from_string")]
120 pub market_value: f64,
121
122 #[serde(deserialize_with = "deserialize_number_from_string")]
124 pub collateral_amount: f64,
125
126 #[serde(deserialize_with = "deserialize_number_from_string")]
128 pub collateral_weight: f64,
129
130 #[serde(deserialize_with = "deserialize_number_from_string")]
132 pub max_withdrawal_balance: f64,
133}
134
135pub fn balance() -> String {
136 ("user.balance").to_string()
137 }