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        }
29        pub mod strategy {
30            include!("fintekkers.models.strategy.rs");
31        }
32        pub mod transaction {
33            include!("fintekkers.models.transaction.rs");
34        }
35        pub mod util {
36            include!("fintekkers.models.util.rs");
37
38            pub mod lock {
39                include!("fintekkers.models.util.lock.rs");
40            }
41        }
42    }
43
44    pub mod requests {
45        pub mod portfolio {
46            include!("fintekkers.requests.portfolio.rs");
47        }
48        pub mod position {
49            include!("fintekkers.requests.position.rs");
50        }
51        pub mod price {
52            include!("fintekkers.requests.price.rs");
53        }
54        pub mod security {
55            include!("fintekkers.requests.security.rs");
56        }
57        pub mod strategy {}
58        pub mod transaction {
59            include!("fintekkers.requests.transaction.rs");
60        }
61        pub mod util {
62            pub mod lock {
63                include!("fintekkers.requests.util.lock.rs");
64            }
65            pub mod errors {
66                include!("fintekkers.requests.util.errors.rs");
67            }
68            include!("fintekkers.requests.util.rs");
69        }
70        pub mod valuation {
71            include!("fintekkers.requests.valuation.rs");
72        }
73    }
74
75    pub mod services {
76        pub mod lock_service {
77            include!("fintekkers.services.lock_service.rs");
78        }
79        pub mod portfolio_service {
80            include!("fintekkers.services.portfolio_service.rs");
81        }
82        pub mod position_service {
83            include!("fintekkers.services.position_service.rs");
84        }
85        pub mod price_service {
86            include!("fintekkers.services.price_service.rs");
87        }
88        pub mod security_service {
89            include!("fintekkers.services.security_service.rs");
90        }
91        pub mod transaction_service {
92            include!("fintekkers.services.transaction_service.rs");
93        }
94        pub mod valuation_service {
95            include!("fintekkers.services.valuation_service.rs");
96        }
97    }
98}
99
100#[cfg(test)]
101mod tests {
102    use prost_types::Timestamp;
103
104    use crate::fintekkers;
105
106    #[test]
107    fn it_works() {
108        let now_timestamp = Timestamp::default();
109        let now_wrapped_timestap = Some(now_timestamp);
110
111        let as_of_timestamp = fintekkers::models::util::LocalTimestampProto {
112            time_zone: String::from("America/New_York"),
113            timestamp: now_wrapped_timestap,
114        };
115
116        let portfolio = fintekkers::models::portfolio::PortfolioProto {
117            as_of: Some(as_of_timestamp.clone()),
118            valid_from: Some(as_of_timestamp.clone()),
119            valid_to: None,
120            object_class: String::from("Portfolio"),
121            version: String::from("0.0.1"),
122            portfolio_name: String::from("PortfolioName"),
123            is_link: false,
124            uuid: None,
125        };
126
127        assert_eq!(portfolio.portfolio_name, String::from("PortfolioName"))
128    }
129}