barter_execution/
balance.rs

1use chrono::{DateTime, Utc};
2use derive_more::Constructor;
3use rust_decimal::Decimal;
4use serde::{Deserialize, Serialize};
5
6#[derive(
7    Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Deserialize, Serialize, Constructor,
8)]
9pub struct AssetBalance<AssetKey> {
10    pub asset: AssetKey,
11    pub balance: Balance,
12    pub time_exchange: DateTime<Utc>,
13}
14
15#[derive(
16    Debug,
17    Copy,
18    Clone,
19    PartialEq,
20    Eq,
21    PartialOrd,
22    Ord,
23    Hash,
24    Default,
25    Deserialize,
26    Serialize,
27    Constructor,
28)]
29pub struct Balance {
30    pub total: Decimal,
31    pub free: Decimal,
32}
33
34impl Balance {
35    pub fn used(&self) -> Decimal {
36        self.total - self.free
37    }
38}