lrzcc_wire/budgeting/
budget_over_tree.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
5pub struct BudgetOverTreeServer {
6    pub total: f64,
7    pub flavors: HashMap<String, f64>,
8}
9
10#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
11pub struct BudgetOverTreeUser {
12    pub cost: f64,
13    pub budget_id: u32,
14    pub budget: u64,
15    pub over: bool,
16    pub servers: HashMap<String, BudgetOverTreeServer>,
17    pub flavors: HashMap<String, f64>,
18}
19
20#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
21pub struct BudgetOverTreeProject {
22    pub cost: f64,
23    pub budget_id: u32,
24    pub budget: u64,
25    pub over: bool,
26    pub users: HashMap<String, BudgetOverTreeUser>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub flavors: Option<HashMap<String, f64>>,
29}
30
31#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
32pub struct BudgetOverTree {
33    #[serde(skip_serializing_if = "Option::is_none")]
34    pub cost: Option<f64>,
35    pub projects: HashMap<String, BudgetOverTreeProject>,
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub flavors: Option<HashMap<String, f64>>,
38}