Skip to main content

ledger_models/
lib.rs

1extern crate core;
2
3pub mod fintekkers {
4
5    pub mod proto {
6        pub const LEDGER_MODELS_PROTO_FILE_DESCRIPTOR_SET: &[u8] =
7            include_bytes!("ledger_models_file_descriptor_set_v_todo.bin");
8    }
9
10    pub mod wrappers;
11
12    pub mod models {
13        pub mod portfolio {
14            include!("fintekkers.models.portfolio.rs");
15        }
16        pub mod position {
17            include!("fintekkers.models.position.rs");
18        }
19        pub mod price {
20            include!("fintekkers.models.price.rs");
21        }
22        pub mod security {
23            include!("fintekkers.models.security.rs");
24
25            pub mod bond {
26                include!("fintekkers.models.security.bond.rs");
27            }
28            pub mod index {
29                include!("fintekkers.models.security.index.rs");
30            }
31        }
32        pub mod strategy {
33            include!("fintekkers.models.strategy.rs");
34        }
35        pub mod transaction {
36            include!("fintekkers.models.transaction.rs");
37        }
38        pub mod util {
39            include!("fintekkers.models.util.rs");
40
41            pub mod lock {
42                include!("fintekkers.models.util.lock.rs");
43            }
44        }
45        pub mod valuation {
46            include!("fintekkers.models.valuation.rs");
47        }
48    }
49
50    pub mod requests {
51        pub mod index_composition {
52            include!("fintekkers.requests.index_composition.rs");
53        }
54        pub mod portfolio {
55            include!("fintekkers.requests.portfolio.rs");
56        }
57        pub mod position {
58            include!("fintekkers.requests.position.rs");
59        }
60        pub mod price {
61            include!("fintekkers.requests.price.rs");
62        }
63        pub mod security {
64            include!("fintekkers.requests.security.rs");
65        }
66        pub mod strategy {}
67        pub mod transaction {
68            include!("fintekkers.requests.transaction.rs");
69        }
70        pub mod util {
71            pub mod lock {
72                include!("fintekkers.requests.util.lock.rs");
73            }
74            pub mod errors {
75                include!("fintekkers.requests.util.errors.rs");
76            }
77            include!("fintekkers.requests.util.rs");
78        }
79        pub mod valuation {
80            include!("fintekkers.requests.valuation.rs");
81        }
82    }
83
84    pub mod services {
85        pub mod index_composition_service {
86            include!("fintekkers.services.index_composition_service.rs");
87        }
88        pub mod lock_service {
89            include!("fintekkers.services.lock_service.rs");
90        }
91        pub mod portfolio_service {
92            include!("fintekkers.services.portfolio_service.rs");
93        }
94        pub mod position_service {
95            include!("fintekkers.services.position_service.rs");
96        }
97        pub mod price_service {
98            include!("fintekkers.services.price_service.rs");
99        }
100        pub mod security_service {
101            include!("fintekkers.services.security_service.rs");
102        }
103        pub mod transaction_service {
104            include!("fintekkers.services.transaction_service.rs");
105        }
106        pub mod valuation_service {
107            include!("fintekkers.services.valuation_service.rs");
108        }
109    }
110}
111
112#[cfg(test)]
113mod tests {
114    use prost_types::Timestamp;
115
116    use crate::fintekkers;
117
118    #[test]
119    fn it_works() {
120        let now_timestamp = Timestamp::default();
121        let now_wrapped_timestap = Some(now_timestamp);
122
123        let as_of_timestamp = fintekkers::models::util::LocalTimestampProto {
124            time_zone: String::from("America/New_York"),
125            timestamp: now_wrapped_timestap,
126        };
127
128        let portfolio = fintekkers::models::portfolio::PortfolioProto {
129            as_of: Some(as_of_timestamp.clone()),
130            valid_from: Some(as_of_timestamp.clone()),
131            valid_to: None,
132            object_class: String::from("Portfolio"),
133            version: String::from("0.0.1"),
134            portfolio_name: String::from("PortfolioName"),
135            is_link: false,
136            uuid: None,
137        };
138
139        assert_eq!(portfolio.portfolio_name, String::from("PortfolioName"))
140    }
141}