tktax_analysis/
show_account.rs1crate::ix!();
3
4impl<TxCat:TransactionCategory> ShowCategoryMap<TxCat> for Account {
6 fn show_category_map(&self, category_map: &CategoryMap<TxCat>) {
7 print_header("[category-map]");
8 println!("{:#?}", category_map);
9 println!(" ");
10 }
11}
12
13impl<TxCat:TransactionCategory> ShowCategorizedDebug<TxCat> for Account {
15 fn show_categorized_debug(&self, category_map: &CategoryMap<TxCat>) {
16 print_header("[category-debug]");
17 self.print_categorized_transactions_full(category_map);
18 println!(" ");
19 }
20}
21
22impl<TxCat:TransactionCategory> ShowCategorizedShort<TxCat> for Account {
24 fn show_categorized_short(&self, category_map: &CategoryMap<TxCat>) {
25 print_header("[categorized]");
26 self.print_categorized_transactions_short(category_map);
27 println!(" ");
28 }
29}
30
31impl ShowMonthlySummary for Account {
33
34 fn show_monthly_summary(&self) {
35 print_header("[monthly-summary]");
36 let summary = self.monthly_summary();
37 println!("{:#?}", summary);
38 println!(" ");
39 }
40}
41
42impl ShowAccountSummary for Account {
44
45 fn show_account_summary(&self) {
46 print_header("[account-summary]");
47 let summary = self.summary();
48 println!("{}", summary);
49 println!(" ");
50 }
51}
52
53impl ShowHistogram for Account {
55
56 type DisplayStrategy = HistogramDisplayStrategy;
57
58 fn show_histogram(&self, histogram_display_strategy: &Self::DisplayStrategy) {
59 print_header("[account-histogram]");
60 let histogram = self.histogram(histogram_display_strategy);
61 println!("{}", histogram);
62 println!(" ");
63 }
64}
65
66impl ShowAccountBursts for Account {
68
69 fn show_account_bursts(&self) {
70 print_header("[account-bursts]");
71 self.print_heavy_bursts(
72 DEFAULT_TOP_N_HEAVY_BURSTS,
73 DEFAULT_HEAVY_BURST_WINDOW_SIZE_DAYS
74 );
75 println!(" ");
76 }
77}
78
79impl<TxCat:TransactionCategory + 'static> ShowBusinessTransactions<TxCat> for Account {
81
82 fn show_business_transactions(&self, category_map: &CategoryMap<TxCat>) {
83 let items = self.business_expenditures(category_map);
84 match items.is_empty() {
85 true => {
86 println!("NOTE: no businesslike transactions for {}", self.kind());
87 },
88 false => {
89 print_header("[businesslike-expenditures]");
90 analyze_line_items_for_account(
91 *self.kind(),
92 &items
93 );
94 println!(" ");
95 }
96 }
97 }
98}
99
100impl<TxCat:TransactionCategory + 'static> ShowMedicalAndInsuranceExpenditures<TxCat> for Account {
102
103 fn show_medical_and_insurance_expenditures(&self, category_map: &CategoryMap<TxCat>) {
104 let items = self.medical_and_insurance_expenditures(category_map);
105 match items.is_empty() {
106 true => {
107 println!("NOTE: no medical or insurance transactions for {}", self.kind());
108 },
109 false => {
110 print_header("[medical-and-insurance-expenditures]");
111 analyze_line_items_for_account(
112 *self.kind(),
113 &items
114 );
115 println!(" ");
116 }
117 }
118 }
119}
120
121impl<TxCat:TransactionCategory + 'static> ShowTreasuryTransactionsAndChecks<TxCat> for Account {
123
124 fn show_treasury_transactions_and_checks(&self, category_map: &CategoryMap<TxCat>) {
125 let items = self.treasury_transactions_and_checks(category_map);
126 match items.is_empty() {
127 true => {
128 println!("NOTE: no checks or treasury transactions for {}", self.kind());
129 },
130 false => {
131 print_header("[treasury-transactions-and-checks]");
132 analyze_line_items_for_account(
133 *self.kind(),
134 &items
135 );
136 println!(" ");
137 }
138 }
139 }
140}
141
142impl ShowQuarterlySummary for Account {
143 fn show_quarterly_summary(&self) {
144 print_header("[quarterly-summary]");
145 for summary in self.quarterly_summary().expect("expected to be able to create quarterly summaries") {
146 println!("{}", summary);
147 }
148 }
149}