fireblocks_sdk/models/
limit_execution_response_details.rs1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct LimitExecutionResponseDetails {
16 #[serde(rename = "side")]
18 pub side: Side,
19 #[serde(rename = "baseAmount")]
21 pub base_amount: String,
22 #[serde(rename = "baseAssetId")]
24 pub base_asset_id: String,
25 #[serde(rename = "baseAssetRail", skip_serializing_if = "Option::is_none")]
26 pub base_asset_rail: Option<models::TransferRail>,
27 #[serde(rename = "quoteAssetId")]
29 pub quote_asset_id: String,
30 #[serde(rename = "quoteAssetRail", skip_serializing_if = "Option::is_none")]
31 pub quote_asset_rail: Option<models::TransferRail>,
32 #[serde(rename = "type")]
34 pub r#type: Type,
35 #[serde(rename = "timeInForce")]
36 pub time_in_force: models::TimeInForce,
37 #[serde(rename = "limitPrice")]
39 pub limit_price: String,
40}
41
42impl LimitExecutionResponseDetails {
43 pub fn new(
44 side: Side,
45 base_amount: String,
46 base_asset_id: String,
47 quote_asset_id: String,
48 r#type: Type,
49 time_in_force: models::TimeInForce,
50 limit_price: String,
51 ) -> LimitExecutionResponseDetails {
52 LimitExecutionResponseDetails {
53 side,
54 base_amount,
55 base_asset_id,
56 base_asset_rail: None,
57 quote_asset_id,
58 quote_asset_rail: None,
59 r#type,
60 time_in_force,
61 limit_price,
62 }
63 }
64}
65#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
67pub enum Side {
68 #[serde(rename = "BUY")]
69 Buy,
70 #[serde(rename = "SELL")]
71 Sell,
72}
73
74impl Default for Side {
75 fn default() -> Side {
76 Self::Buy
77 }
78}
79#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
81pub enum Type {
82 #[serde(rename = "LIMIT")]
83 Limit,
84}
85
86impl Default for Type {
87 fn default() -> Type {
88 Self::Limit
89 }
90}