futucli/cmd/analysis/
short_info.rs1mod corporate_actions;
4mod market_activity;
5mod shareholders;
6
7pub use corporate_actions::{
8 run_corporate_actions_buybacks, run_corporate_actions_dividends,
9 run_corporate_actions_stock_splits,
10};
11pub use market_activity::{
12 run_daily_short_volume, run_short_interest, run_top_ten_buy_sell_brokers,
13};
14pub use shareholders::{
15 ShareholdersHolderDetailCommand, ShareholdersHoldingChangesCommand, run_insider_holder_list,
16 run_insider_trade_list, run_shareholders_holder_detail, run_shareholders_holding_changes,
17 run_shareholders_institutional, run_shareholders_overview,
18};
19
20fn display_opt(value: &Option<String>) -> String {
21 value.clone().unwrap_or_default()
22}
23
24fn display_u64(value: Option<u64>) -> String {
25 value.map(|v| v.to_string()).unwrap_or_default()
26}
27
28fn display_i64(value: Option<i64>) -> String {
29 value.map(|v| v.to_string()).unwrap_or_default()
30}
31
32fn display_f64(value: Option<f64>) -> String {
33 value.map(|v| v.to_string()).unwrap_or_default()
34}
35
36fn display_bool(value: Option<bool>) -> String {
37 value.map(|v| v.to_string()).unwrap_or_default()
38}
39
40fn display_buy_sell_type(value: Option<i32>) -> String {
41 match value {
42 Some(1) => "NET_BUY".to_string(),
43 Some(2) => "NET_SELL".to_string(),
44 Some(other) => other.to_string(),
45 None => String::new(),
46 }
47}