1pub mod basic_qot;
23pub mod broker;
24pub mod history_kl;
25pub mod ipo_calendar;
26pub mod kline;
27pub mod market_misc;
28pub mod order_book;
29pub mod order_detail;
30pub mod page_bounds;
31pub mod push;
32pub mod quote_rights;
33pub mod right_gate;
34pub mod rt;
35pub mod snapshot;
36pub mod static_info;
37pub mod sub;
38pub mod subscription_plan;
39pub mod symbol;
40pub mod symbol_list;
41pub mod ticker;
42pub mod types;
43
44#[inline]
45pub(crate) fn server_err(ret_type: i32, ret_msg: Option<String>) -> futu_core::error::FutuError {
46 let msg = match ret_msg {
47 Some(msg) if !msg.is_empty() => msg,
48 _ => "<missing ret_msg>".to_string(),
49 };
50 futu_core::error::FutuError::ServerError { ret_type, msg }
51}
52
53pub use page_bounds::{
55 PageBounds, PageBoundsError, PageBoundsErrorReason, validate_begin_num,
56 validate_optional_max_count,
57};
58pub use push::{QuoteHandler, QuotePushDispatcher};
59pub use types::{BasicQot, KLType, KLine, OrderBookData, QotMarket, RehabType, Security, SubType};
60
61#[cfg(test)]
62mod tests;