fts_solver/types/
outcome.rs1use crate::HashMap;
2use std::hash::Hash;
3
4#[derive(Debug)]
6#[cfg_attr(
7 feature = "serde",
8 derive(serde::Serialize, serde::Deserialize),
9 serde(bound = "
10 BidderId: Hash + Eq + serde::Serialize + serde::de::DeserializeOwned,
11 PortfolioId: Clone + Hash + Eq + serde::Serialize + serde::de::DeserializeOwned,
12 ProductId: Hash + Eq + Ord + serde::Serialize + serde::de::DeserializeOwned
13 ")
14)]
15pub struct AuctionOutcome<BidderId, PortfolioId, ProductId> {
16 pub submissions: HashMap<BidderId, HashMap<PortfolioId, PortfolioOutcome>>,
18
19 pub products: HashMap<ProductId, ProductOutcome>,
21}
22
23impl<BidderId, PortfolioId, ProductId> Default
24 for AuctionOutcome<BidderId, PortfolioId, ProductId>
25{
26 fn default() -> Self {
27 Self {
28 submissions: Default::default(),
29 products: Default::default(),
30 }
31 }
32}
33
34#[derive(Debug)]
37#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
38pub struct PortfolioOutcome {
39 pub price: f64,
41 pub trade: f64,
43 }
46
47#[derive(Debug)]
50#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
51pub struct ProductOutcome {
52 pub price: f64,
54 pub trade: f64,
56}