swapkit_rs/types/
quote_swap.rs

1use rust_decimal::Decimal;
2use serde::{Deserialize, Serialize};
3
4/*
5{
6		"from": "ETH.ETH",
7		"to": "BTC.BTC",
8		"parts": [
9				{
10						"provider": "THORCHAIN",
11						"percentage": 100
12				}
13		]
14}
15*/
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
18pub struct QuoteSwap {
19	from: String,
20	to: String,
21	parts: Vec<QuoteSwapPart>,
22}
23
24impl QuoteSwap {
25	#[must_use]
26	pub const fn get_from(&self) -> &String {
27		&self.from
28	}
29
30	#[must_use]
31	pub const fn get_to(&self) -> &String {
32		&self.to
33	}
34
35	#[must_use]
36	pub const fn get_parts(&self) -> &Vec<QuoteSwapPart> {
37		&self.parts
38	}
39}
40
41/*
42{
43		"provider": "THORCHAIN",
44		"percentage": 100
45}
46*/
47
48#[allow(clippy::module_name_repetitions)]
49#[derive(Debug, Clone, Serialize, Deserialize)]
50pub struct QuoteSwapPart {
51	provider: String,
52
53	#[serde(serialize_with = "rust_decimal::serde::str::serialize", deserialize_with = "rust_decimal::serde::float::deserialize")]
54	percentage: Decimal,
55}
56
57impl QuoteSwapPart {
58	#[must_use]
59	pub const fn get_provider(&self) -> &String {
60		&self.provider
61	}
62
63	#[must_use]
64	pub const fn get_percentage(&self) -> Decimal {
65		self.percentage
66	}
67}