midgard_rs/types/
height_date.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use serde_aux::prelude::*;
4use serde_with::formats::Flexible;
5use serde_with::TimestampNanoSeconds;
6
7/*
8*** HeightDate Scheme ***
9
10{
11		"height": "2000000",
12		"date": "946684801000000000"
13}
14*/
15
16#[serde_with::serde_as]
17#[derive(Serialize, Deserialize, Debug, Clone)]
18pub struct HeightDate {
19	#[serde(deserialize_with = "deserialize_number_from_string")]
20	height: u64,
21
22	#[serde_as(as = "TimestampNanoSeconds<String, Flexible>")]
23	date: DateTime<Utc>,
24}
25
26impl HeightDate {
27	#[must_use]
28	pub const fn get_height(&self) -> u64 {
29		self.height
30	}
31
32	#[must_use]
33	pub const fn get_date(&self) -> &DateTime<Utc> {
34		&self.date
35	}
36}