fireblocks_sdk/models/
quote.rs1use {
10 crate::models,
11 serde::{Deserialize, Serialize},
12};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Quote {
16 #[serde(rename = "via")]
17 pub via: models::AccessType,
18 #[serde(rename = "id")]
19 pub id: String,
20 #[serde(rename = "type")]
22 pub r#type: Type,
23 #[serde(rename = "quoteAssetId")]
24 pub quote_asset_id: String,
25 #[serde(rename = "baseAssetId")]
26 pub base_asset_id: String,
27 #[serde(rename = "baseAmount")]
28 pub base_amount: String,
29 #[serde(rename = "quoteAmount")]
30 pub quote_amount: String,
31 #[serde(rename = "priceImpact", skip_serializing_if = "Option::is_none")]
32 pub price_impact: Option<f64>,
33 #[serde(rename = "quoteMinAmount", skip_serializing_if = "Option::is_none")]
34 pub quote_min_amount: Option<String>,
35 #[serde(rename = "executionSteps", skip_serializing_if = "Option::is_none")]
36 pub execution_steps: Option<Vec<models::ExecutionStepDetails>>,
37 #[serde(rename = "generalFees", skip_serializing_if = "Option::is_none")]
38 pub general_fees: Option<Vec<models::Fee>>,
39 #[serde(rename = "side")]
41 pub side: Side,
42 #[serde(rename = "expiresAt")]
44 pub expires_at: String,
45}
46
47impl Quote {
48 pub fn new(
49 via: models::AccessType,
50 id: String,
51 r#type: Type,
52 quote_asset_id: String,
53 base_asset_id: String,
54 base_amount: String,
55 quote_amount: String,
56 side: Side,
57 expires_at: String,
58 ) -> Quote {
59 Quote {
60 via,
61 id,
62 r#type,
63 quote_asset_id,
64 base_asset_id,
65 base_amount,
66 quote_amount,
67 price_impact: None,
68 quote_min_amount: None,
69 execution_steps: None,
70 general_fees: None,
71 side,
72 expires_at,
73 }
74 }
75}
76#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
78pub enum Type {
79 #[serde(rename = "INDICATIVE")]
80 Indicative,
81}
82
83impl Default for Type {
84 fn default() -> Type {
85 Self::Indicative
86 }
87}
88#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
90pub enum Side {
91 #[serde(rename = "BUY")]
92 Buy,
93 #[serde(rename = "SELL")]
94 Sell,
95}
96
97impl Default for Side {
98 fn default() -> Side {
99 Self::Buy
100 }
101}