midgard_rs/types/
balance.rs

1use 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/*
10
11*** Balance Scheme ***
12{
13	"coins": AssetAmounts,
14	"date": "1710779252869332524",
15	"height": "15166269"
16}
17
18*/
19
20#[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}