Skip to main content

futucli/cmd/analysis/
short_info.rs

1//! v10.6 short-info CLI adapters.
2
3mod 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}