tktax_analysis/
account_analysis.rs1crate::ix!();
3
4impl<TxCat:TransactionCategory + 'static> AccountAnalysisInterface<TxCat> for Account {
5
6 fn analyze(&self, analysis: &AccountAnalysis<TxCat>)
7 -> Result<(),AccountError>
8 {
9 let flags = analysis.flags();
10 let category_map = analysis.category_map();
11 let histogram_display_strategy = analysis.histogram_display_strategy();
12
13 info!("will analyze account {:#?}", self.kind());
14
15 print_thick_header("[ACCOUNT_ANALYSIS]");
16
17 println!("performing account analysis for year={}, account={}", self.year(), self.kind());
18 println!(" ");
19
20 if flags.contains(AccountAnalysisFlags::SHOW_ACCOUNT_SUMMARY) {
21 self.show_account_summary();
22 }
23
24 if flags.contains(AccountAnalysisFlags::SHOW_HISTOGRAM) {
25 self.show_histogram(histogram_display_strategy);
26 }
27
28 if flags.contains(AccountAnalysisFlags::SHOW_BURSTS) {
29 self.show_account_bursts();
30 }
31
32 if flags.contains(AccountAnalysisFlags::SHOW_MONTHLY_SUMMARY) {
33 self.show_monthly_summary();
34 }
35
36 if flags.contains(AccountAnalysisFlags::SHOW_BUSINESS_TRANSACTIONS) {
37 self.show_business_transactions(category_map);
38 }
39
40 if flags.contains(AccountAnalysisFlags::SHOW_MEDICAL_AND_INSURANCE_TRANSACTIONS) {
41 self.show_medical_and_insurance_expenditures(category_map);
42 }
43
44 if flags.contains(AccountAnalysisFlags::SHOW_TREASURY_TRANSACTIONS_AND_CHECKS) {
45 self.show_treasury_transactions_and_checks(category_map);
46 }
47
48 if flags.contains(AccountAnalysisFlags::SHOW_CATEGORY_MAP) {
49 self.show_category_map(category_map);
50 }
51
52 if flags.contains(AccountAnalysisFlags::SHOW_CATEGORIZED_FULL) {
53 self.show_categorized_debug(category_map);
54 }
55
56 if flags.contains(AccountAnalysisFlags::SHOW_CATEGORIZED_SHORT) {
57 self.show_categorized_short(category_map);
58 }
59
60 if flags.contains(AccountAnalysisFlags::SHOW_QUARTERLY_SUMMARY) {
61 self.show_quarterly_summary();
62 }
63
64 Ok(())
65 }
66}