midgard_rs/types/
swap_interval.rs1use chrono::{DateTime, Utc};
2use rust_decimal::Decimal;
3use serde::{Deserialize, Serialize};
4use serde_aux::prelude::*;
5use serde_with::formats::Flexible;
6use serde_with::TimestampSeconds;
7
8#[serde_with::serde_as]
41#[derive(Debug, Serialize, Deserialize, Clone, Default)]
42pub struct SwapInterval {
43 #[serde(rename = "averageSlip", with = "rust_decimal::serde::str")]
44 average_slip: Decimal,
45
46 #[serde_as(as = "TimestampSeconds<String, Flexible>")]
47 #[serde(rename = "endTime")]
48 end_time: DateTime<Utc>,
49
50 #[serde(rename = "runePriceUSD", with = "rust_decimal::serde::str")]
51 rune_price_usd: Decimal,
52
53 #[serde_as(as = "TimestampSeconds<String, Flexible>")]
54 #[serde(rename = "startTime")]
55 start_time: DateTime<Utc>,
56
57 #[serde(rename = "synthMintAverageSlip", with = "rust_decimal::serde::str")]
58 synth_mint_average_slip: Decimal,
59
60 #[serde(rename = "synthMintCount", deserialize_with = "deserialize_number_from_string")]
61 synth_mint_count: u64,
62
63 #[serde(rename = "synthMintFees", deserialize_with = "deserialize_number_from_string")]
64 synth_mint_fees: u64,
65
66 #[serde(rename = "synthMintVolume", deserialize_with = "deserialize_number_from_string")]
67 synth_mint_volume: u64,
68
69 #[serde(rename = "synthRedeemAverageSlip", with = "rust_decimal::serde::str")]
70 synth_redeem_average_slip: Decimal,
71
72 #[serde(rename = "synthRedeemCount", deserialize_with = "deserialize_number_from_string")]
73 synth_redeem_count: u64,
74
75 #[serde(rename = "synthRedeemFees", deserialize_with = "deserialize_number_from_string")]
76 synth_redeem_fees: u64,
77
78 #[serde(rename = "synthRedeemVolume", deserialize_with = "deserialize_number_from_string")]
79 synth_redeem_volume: u64,
80
81 #[serde(rename = "toAssetAverageSlip", with = "rust_decimal::serde::str")]
82 to_asset_average_slip: Decimal,
83
84 #[serde(rename = "toAssetCount", deserialize_with = "deserialize_number_from_string")]
85 to_asset_count: u64,
86
87 #[serde(rename = "toAssetFees", deserialize_with = "deserialize_number_from_string")]
88 to_asset_fees: u64,
89
90 #[serde(rename = "toAssetVolume", deserialize_with = "deserialize_number_from_string")]
91 to_asset_volume: u64,
92
93 #[serde(rename = "toAssetVolumeUSD", deserialize_with = "deserialize_option_number_from_string")]
94 to_asset_volume_usd: Option<u64>,
95
96 #[serde(rename = "toRuneAverageSlip", with = "rust_decimal::serde::str")]
97 to_rune_average_slip: Decimal,
98
99 #[serde(rename = "toRuneCount", deserialize_with = "deserialize_number_from_string")]
100 to_rune_count: u64,
101
102 #[serde(rename = "toRuneFees", deserialize_with = "deserialize_number_from_string")]
103 to_rune_fees: u64,
104
105 #[serde(rename = "toRuneVolume", deserialize_with = "deserialize_number_from_string")]
106 to_rune_volume: u64,
107
108 #[serde(rename = "toRuneVolumeUSD", deserialize_with = "deserialize_option_number_from_string")]
109 to_rune_volume_usd: Option<u64>,
110
111 #[serde(rename = "totalCount", deserialize_with = "deserialize_number_from_string")]
112 total_count: u64,
113
114 #[serde(rename = "totalFees", deserialize_with = "deserialize_number_from_string")]
115 total_fees: u64,
116
117 #[serde(rename = "totalVolume", deserialize_with = "deserialize_number_from_string")]
118 total_volume: u64,
119
120 #[serde(rename = "totalVolumeUSD", deserialize_with = "deserialize_option_number_from_string")]
121 total_volume_usd: Option<u64>,
122}
123
124impl SwapInterval {
125 #[must_use]
126 pub const fn get_average_slip(&self) -> &Decimal {
127 &self.average_slip
128 }
129
130 #[must_use]
131 pub const fn get_end_time(&self) -> &DateTime<Utc> {
132 &self.end_time
133 }
134
135 #[must_use]
136 pub const fn get_rune_price_usd(&self) -> &Decimal {
137 &self.rune_price_usd
138 }
139
140 #[must_use]
141 pub const fn get_start_time(&self) -> &DateTime<Utc> {
142 &self.start_time
143 }
144
145 #[must_use]
146 pub const fn get_synth_mint_average_slip(&self) -> &Decimal {
147 &self.synth_mint_average_slip
148 }
149
150 #[must_use]
151 pub const fn get_synth_mint_count(&self) -> &u64 {
152 &self.synth_mint_count
153 }
154
155 #[must_use]
156 pub const fn get_synth_mint_fees(&self) -> &u64 {
157 &self.synth_mint_fees
158 }
159
160 #[must_use]
161 pub const fn get_synth_mint_volume(&self) -> &u64 {
162 &self.synth_mint_volume
163 }
164
165 #[must_use]
166 pub const fn get_synth_redeem_average_slip(&self) -> &Decimal {
167 &self.synth_redeem_average_slip
168 }
169
170 #[must_use]
171 pub const fn get_synth_redeem_count(&self) -> &u64 {
172 &self.synth_redeem_count
173 }
174
175 #[must_use]
176 pub const fn get_synth_redeem_fees(&self) -> &u64 {
177 &self.synth_redeem_fees
178 }
179
180 #[must_use]
181 pub const fn get_synth_redeem_volume(&self) -> &u64 {
182 &self.synth_redeem_volume
183 }
184
185 #[must_use]
186 pub const fn get_to_asset_average_slip(&self) -> &Decimal {
187 &self.to_asset_average_slip
188 }
189
190 #[must_use]
191 pub const fn get_to_asset_count(&self) -> &u64 {
192 &self.to_asset_count
193 }
194
195 #[must_use]
196 pub const fn get_to_asset_fees(&self) -> &u64 {
197 &self.to_asset_fees
198 }
199
200 #[must_use]
201 pub const fn get_to_asset_volume(&self) -> &u64 {
202 &self.to_asset_volume
203 }
204
205 #[must_use]
206 pub const fn get_to_asset_volume_usd(&self) -> &Option<u64> {
207 &self.to_asset_volume_usd
208 }
209
210 #[must_use]
211 pub const fn get_to_rune_average_slip(&self) -> &Decimal {
212 &self.to_rune_average_slip
213 }
214
215 #[must_use]
216 pub const fn get_to_rune_count(&self) -> &u64 {
217 &self.to_rune_count
218 }
219
220 #[must_use]
221 pub const fn get_to_rune_fees(&self) -> &u64 {
222 &self.to_rune_fees
223 }
224
225 #[must_use]
226 pub const fn get_to_rune_volume(&self) -> &u64 {
227 &self.to_rune_volume
228 }
229
230 #[must_use]
231 pub const fn get_to_rune_volume_usd(&self) -> &Option<u64> {
232 &self.to_rune_volume_usd
233 }
234
235 #[must_use]
236 pub const fn get_total_count(&self) -> &u64 {
237 &self.total_count
238 }
239
240 #[must_use]
241 pub const fn get_total_fees(&self) -> &u64 {
242 &self.total_fees
243 }
244
245 #[must_use]
246 pub const fn get_total_volume(&self) -> &u64 {
247 &self.total_volume
248 }
249
250 #[must_use]
251 pub const fn get_total_volume_usd(&self) -> &Option<u64> {
252 &self.total_volume_usd
253 }
254}