Skip to main content

made_core/value_objects/budget/
budget_balance.rs

1use super::{BudgetLimits, BudgetQuantities};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5pub struct BudgetBalance {
6    limits: BudgetLimits,
7    reserved: BudgetQuantities,
8    observed: BudgetQuantities,
9    estimated: BudgetQuantities,
10    unconfirmed: BudgetQuantities,
11    overrun: BudgetQuantities,
12    available: BudgetQuantities,
13}
14impl BudgetBalance {
15    #[must_use]
16    pub const fn new(
17        limits: BudgetLimits,
18        reserved: BudgetQuantities,
19        observed: BudgetQuantities,
20        estimated: BudgetQuantities,
21        unconfirmed: BudgetQuantities,
22        overrun: BudgetQuantities,
23        available: BudgetQuantities,
24    ) -> Self {
25        Self {
26            limits,
27            reserved,
28            observed,
29            estimated,
30            unconfirmed,
31            overrun,
32            available,
33        }
34    }
35    #[must_use]
36    pub const fn limits(&self) -> &BudgetLimits {
37        &self.limits
38    }
39    #[must_use]
40    pub const fn reserved(&self) -> BudgetQuantities {
41        self.reserved
42    }
43    #[must_use]
44    pub const fn observed(&self) -> BudgetQuantities {
45        self.observed
46    }
47    #[must_use]
48    pub const fn estimated(&self) -> BudgetQuantities {
49        self.estimated
50    }
51    #[must_use]
52    pub const fn unconfirmed(&self) -> BudgetQuantities {
53        self.unconfirmed
54    }
55    #[must_use]
56    pub const fn overrun(&self) -> BudgetQuantities {
57        self.overrun
58    }
59    #[must_use]
60    pub const fn available(&self) -> BudgetQuantities {
61        self.available
62    }
63}