fireblocks_sdk/models/
limit_execution_response_details.rs

1// Fireblocks API
2//
3// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
4//
5// The version of the OpenAPI document: 1.8.0
6// Contact: developers@fireblocks.com
7// Generated by: https://openapi-generator.tech
8
9use {
10    crate::models,
11    serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct LimitExecutionResponseDetails {
16    /// Side of the order
17    #[serde(rename = "side")]
18    pub side: Side,
19    /// Amount to convert
20    #[serde(rename = "baseAmount")]
21    pub base_amount: String,
22    /// Source asset identifier
23    #[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    /// Target asset identifier
28    #[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    /// Order type for limit orders
33    #[serde(rename = "type")]
34    pub r#type: Type,
35    #[serde(rename = "timeInForce")]
36    pub time_in_force: models::TimeInForce,
37    /// Price for limit orders
38    #[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/// Side of the order
66#[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/// Order type for limit orders
80#[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}