oanda_v20_openapi/models/
account_changes_state.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct AccountChangesState {
17 #[serde(rename = "unrealizedPL", skip_serializing_if = "Option::is_none")]
19 pub unrealized_pl: Option<String>,
20 #[serde(rename = "NAV", skip_serializing_if = "Option::is_none")]
22 pub nav: Option<String>,
23 #[serde(rename = "marginUsed", skip_serializing_if = "Option::is_none")]
25 pub margin_used: Option<String>,
26 #[serde(rename = "marginAvailable", skip_serializing_if = "Option::is_none")]
28 pub margin_available: Option<String>,
29 #[serde(rename = "positionValue", skip_serializing_if = "Option::is_none")]
31 pub position_value: Option<String>,
32 #[serde(rename = "marginCloseoutUnrealizedPL", skip_serializing_if = "Option::is_none")]
34 pub margin_closeout_unrealized_pl: Option<String>,
35 #[serde(rename = "marginCloseoutNAV", skip_serializing_if = "Option::is_none")]
37 pub margin_closeout_nav: Option<String>,
38 #[serde(rename = "marginCloseoutMarginUsed", skip_serializing_if = "Option::is_none")]
40 pub margin_closeout_margin_used: Option<String>,
41 #[serde(rename = "marginCloseoutPercent", skip_serializing_if = "Option::is_none")]
43 pub margin_closeout_percent: Option<String>,
44 #[serde(rename = "marginCloseoutPositionValue", skip_serializing_if = "Option::is_none")]
46 pub margin_closeout_position_value: Option<String>,
47 #[serde(rename = "withdrawalLimit", skip_serializing_if = "Option::is_none")]
49 pub withdrawal_limit: Option<String>,
50 #[serde(rename = "marginCallMarginUsed", skip_serializing_if = "Option::is_none")]
52 pub margin_call_margin_used: Option<String>,
53 #[serde(rename = "marginCallPercent", skip_serializing_if = "Option::is_none")]
55 pub margin_call_percent: Option<String>,
56 #[serde(rename = "orders", skip_serializing_if = "Option::is_none")]
58 pub orders: Option<Vec<models::DynamicOrderState>>,
59 #[serde(rename = "trades", skip_serializing_if = "Option::is_none")]
61 pub trades: Option<Vec<models::CalculatedTradeState>>,
62 #[serde(rename = "positions", skip_serializing_if = "Option::is_none")]
64 pub positions: Option<Vec<models::CalculatedPositionState>>,
65}
66
67impl AccountChangesState {
68 pub fn new() -> AccountChangesState {
70 AccountChangesState {
71 unrealized_pl: None,
72 nav: None,
73 margin_used: None,
74 margin_available: None,
75 position_value: None,
76 margin_closeout_unrealized_pl: None,
77 margin_closeout_nav: None,
78 margin_closeout_margin_used: None,
79 margin_closeout_percent: None,
80 margin_closeout_position_value: None,
81 withdrawal_limit: None,
82 margin_call_margin_used: None,
83 margin_call_percent: None,
84 orders: None,
85 trades: None,
86 positions: None,
87 }
88 }
89}
90