midgard_rs/types/
balance.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use serde_aux::prelude::*;
4use serde_with::formats::Flexible;
5use serde_with::TimestampNanoSeconds;
6
7use crate::AssetAmounts;
8
9#[serde_with::serde_as]
21#[derive(Debug, Serialize, Deserialize, Clone, Default)]
22pub struct Balance {
23 coins: AssetAmounts,
24
25 #[serde_as(as = "TimestampNanoSeconds<String, Flexible>")]
26 date: DateTime<Utc>,
27
28 #[serde(deserialize_with = "deserialize_number_from_string")]
29 height: u64,
30}
31
32impl Balance {
33 #[must_use]
34 pub const fn get_coins(&self) -> &AssetAmounts {
35 &self.coins
36 }
37
38 #[must_use]
39 pub const fn get_date(&self) -> &DateTime<Utc> {
40 &self.date
41 }
42
43 #[must_use]
44 pub const fn get_height(&self) -> &u64 {
45 &self.height
46 }
47}