Skip to main content

futu_backend/
lib.rs

1pub mod auth;
2pub mod code_change;
3pub mod conn;
4pub mod conn_ip;
5pub mod crypto_exchange;
6pub mod crypto_trade;
7pub mod delay_stats;
8pub mod ftlogin_wire;
9pub mod heartbeat;
10pub mod login;
11/// v1.4.110 codex QOT C++ alignment Slice 2: CMD9419 main broker / crypto broker discovery.
12/// 给 QOT `securityFirm=Unknown` 提供 default broker 数据源 (`GetCryptoSupportedDefaultMainBroker`).
13pub mod main_broker_svr;
14/// v1.4.110 codex QOT C++ alignment Phase 3 Slice 6e: CMD6825 broker-aware market state.
15/// 替代旧 CMD6823 路径, 给 GetMarketState 提供 `(market_id, broker_id_or_0)` 双维 lookup.
16pub mod market_info_svr;
17// v1.4.106 codex F5: CMD 6747 ReqMainLinkContract — 期货主连合约真实合约解析
18pub mod main_link_contract;
19pub mod msg_header;
20pub mod nn_codec;
21pub mod ping;
22pub mod proto_handler;
23pub mod quote_sub;
24pub mod reference_http;
25pub mod stock_list;
26pub mod suspend_data;
27pub mod trade_cmd;
28pub mod trade_query;
29pub mod user_profile;
30pub mod valid_brokers;
31
32/// 内部 proto 生成的类型 (proto-internal/)
33#[allow(clippy::tabs_in_doc_comments, clippy::empty_docs)]
34pub mod proto_internal {
35    pub mod odr_sys_cmn {
36        include!(concat!(env!("OUT_DIR"), "/odr_sys_cmn.rs"));
37    }
38    pub mod sim_odr_sys_cmn {
39        include!(concat!(env!("OUT_DIR"), "/sim_odr_sys_cmn.rs"));
40    }
41    // v1.4.53 BUG-6 加:sim 账户 CMD 14704 (CashInfo) + CMD 14705 (PstnInfo)
42    pub mod sim_user_asset_interface {
43        include!(concat!(env!("OUT_DIR"), "/sim_user_asset_interface.rs"));
44    }
45    // v1.4.106: sim 账户订单列表 CMD 14708(由 trade_cmd registry 显式登记)
46    pub mod sim_order_sys_interface {
47        include!(concat!(env!("OUT_DIR"), "/sim_order_sys_interface.rs"));
48    }
49    pub mod algo_info {
50        include!(concat!(env!("OUT_DIR"), "/algo_info.rs"));
51    }
52    pub mod ft_string_define {
53        include!(concat!(env!("OUT_DIR"), "/ft_string_define.rs"));
54    }
55    pub mod ft_usr_trd_acc {
56        include!(concat!(env!("OUT_DIR"), "/ft_usr_trd_acc.rs"));
57    }
58    pub mod ft_cmd2008 {
59        include!(concat!(env!("OUT_DIR"), "/ft_cmd2008.rs"));
60    }
61    pub mod ft_cmd2282 {
62        include!(concat!(env!("OUT_DIR"), "/ft_cmd2282.rs"));
63    }
64    pub mod ft_cmd2298 {
65        include!(concat!(env!("OUT_DIR"), "/ft_cmd2298.rs"));
66    }
67    pub mod ft_conn_heart_beat {
68        include!(concat!(env!("OUT_DIR"), "/ft_conn_heart_beat.rs"));
69    }
70    pub mod user_account {
71        include!(concat!(env!("OUT_DIR"), "/user_account.rs"));
72    }
73    pub mod user_account_info_manager_service {
74        include!(concat!(
75            env!("OUT_DIR"),
76            "/user_account_info_manager_service.rs"
77        ));
78    }
79    // v1.4.110 final E.5 P3#8: FTCmd6741-6750.proto 的 CheckSum 类型被 stock_list_sync_svr
80    // 引用 (id_check_sum_v2 / seq_check_sum_v2 字段), 必须先 pub mod 出 ftcmd6741, 否则
81    // stock_list_sync_svr 生成代码引用 `super::ftcmd6741::CheckSum` 找不到模块.
82    pub mod ftcmd6741 {
83        include!(concat!(env!("OUT_DIR"), "/ftcmd6741.rs"));
84    }
85    pub mod stock_list_sync_svr {
86        include!(concat!(env!("OUT_DIR"), "/stock_list_sync_svr.rs"));
87    }
88    pub mod ft_cmd6822 {
89        include!(concat!(env!("OUT_DIR"), "/ft_cmd6822.rs"));
90    }
91    pub mod ft_cmd6823 {
92        include!(concat!(env!("OUT_DIR"), "/ft_cmd6823.rs"));
93    }
94    pub mod ft_cmd_stock_quote_sub {
95        include!(concat!(env!("OUT_DIR"), "/ft_cmd_stock_quote_sub.rs"));
96    }
97    pub mod ft_cmd_stock_quote_sub_data {
98        include!(concat!(env!("OUT_DIR"), "/ft_cmd_stock_quote_sub_data.rs"));
99    }
100    pub mod ft_common_qta {
101        include!(concat!(env!("OUT_DIR"), "/ft_common_qta.rs"));
102    }
103    pub mod order_sys_interface {
104        include!(concat!(env!("OUT_DIR"), "/order_sys_interface.rs"));
105    }
106    pub mod ft_cmd_tick {
107        include!(concat!(env!("OUT_DIR"), "/ft_cmd_tick.rs"));
108    }
109    pub mod ft_cmd_kline {
110        include!(concat!(env!("OUT_DIR"), "/ft_cmd_kline.rs"));
111    }
112    pub mod ft_cmd_stock_quote_accumulate_data {
113        include!(concat!(
114            env!("OUT_DIR"),
115            "/ft_cmd_stock_quote_accumulate_data.rs"
116        ));
117    }
118    pub mod ft_cmd_stock_quote_coverage_data {
119        include!(concat!(
120            env!("OUT_DIR"),
121            "/ft_cmd_stock_quote_coverage_data.rs"
122        ));
123    }
124    pub mod market_trading_day {
125        include!(concat!(env!("OUT_DIR"), "/market_trading_day.rs"));
126    }
127    pub mod ft_cmd6811 {
128        include!(concat!(env!("OUT_DIR"), "/ft_cmd6811.rs"));
129    }
130    pub mod ft_cmd_plate {
131        include!(concat!(env!("OUT_DIR"), "/ft_cmd_plate.rs"));
132    }
133    pub mod ftcmd_option_chain {
134        include!(concat!(env!("OUT_DIR"), "/ftcmd_option_chain.rs"));
135    }
136    /// v1.4.38 Phase 3: CMD 6736 期权 Greek server-side filter (GetComboOptionList)
137    pub mod option_chain_frpc_svr {
138        include!(concat!(env!("OUT_DIR"), "/option_chain_frpc_svr.rs"));
139    }
140    /// v1.4.38 Phase 2 A2b: CMD 20106 on-demand stock/option info lookup by symbol
141    pub mod stock_information_svr {
142        include!(concat!(env!("OUT_DIR"), "/stock_information_svr.rs"));
143    }
144    pub mod cash_flow_cs {
145        include!(concat!(env!("OUT_DIR"), "/cash_flow_cs.rs"));
146    }
147    // v1.4.94 Tier M (mobile-driven extension): 资金明细 / cash log
148    // 来源: ftcnnproto/.../realtime_asset_log.proto (cmd 3000/3001/3002)
149    pub mod realtime_asset_log {
150        include!(concat!(env!("OUT_DIR"), "/realtime_asset_log.rs"));
151    }
152    // v1.4.95 U2-D Tier M (mobile-driven extension): margin account info per market
153    // 来源: ftcnnproto/.../risk_user_account_info.proto (cmd 3101/3102/3107)
154    pub mod risk_user_account_info {
155        include!(concat!(env!("OUT_DIR"), "/risk_user_account_info.rs"));
156    }
157    // C++ 10.7 combo option strategy identify: backend CMD 2327/2328.
158    pub mod option_combo_identify {
159        include!(concat!(env!("OUT_DIR"), "/combo_identify.rs"));
160    }
161    // v1.4.95 U2-A Tier M (mobile-driven extension): account compliance flags
162    // 来源: ftcnnproto/.../account_flag.proto (cmd 5281)
163    pub mod account_flag {
164        include!(concat!(env!("OUT_DIR"), "/account_flag.rs"));
165    }
166    // v1.4.95 U2-B Tier M (mobile-driven extension): bond holdings + trade prep
167    // 来源: ftcnnproto/.../bond_client_view.proto (cmd 9373/9374/9375/10043/10057)
168    pub mod bond_client_view {
169        include!(concat!(env!("OUT_DIR"), "/bond_client_view.rs"));
170    }
171    // v1.4.107 funds source audit: OpenD QueryFundNoLimit sidecar asset
172    // request for fund/bond totals (CMD 20086).
173    pub mod mobile_fund_asset {
174        include!(concat!(env!("OUT_DIR"), "/mobile_fund_asset.rs"));
175    }
176    // v1.4.98 T2-8 (mobile-source-audit Phase 2): NN+MM token 状态查询
177    // 来源: moomoo futu_token.proto cmd 1326 (GetTokenListRequest/Response)
178    pub mod futu_token_state {
179        include!(concat!(env!("OUT_DIR"), "/futu_token_state.rs"));
180    }
181    // v1.4.98 T2-2 (mobile-source-audit Phase 2): 无风险利率 (期权定价)
182    // 来源: ftcnnproto risk_free_rate_service.proto cmd 20231 GetRiskFreeRate
183    pub mod risk_free_rate {
184        include!(concat!(env!("OUT_DIR"), "/risk_free_rate.rs"));
185    }
186    // v1.4.111 10.7 option break-even: CMD20675 chain statistic cache source.
187    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/option_statistic_service.proto
188    pub mod option_statistic_service {
189        include!(concat!(env!("OUT_DIR"), "/option_statistic_service.rs"));
190    }
191    // v1.4.98 T2-3 (mobile-source-audit Phase 2): 逐笔统计 (TickerStatistic)
192    // 来源: proto-internal/FTCmdTickerStatistic6365-6366.proto cmd 6365/6366
193    pub mod ft_cmd_ticker_statistic {
194        include!(concat!(env!("OUT_DIR"), "/ft_cmd_ticker_statistic.rs"));
195    }
196    // v1.4.98 T2-3: daemon-side wire envelopes for TickerStatistic (Security
197    // 字符串解析 → stock_id, 然后调 ft_cmd_ticker_statistic).
198    pub mod ticker_statistic_daemon {
199        include!(concat!(env!("OUT_DIR"), "/ticker_statistic_daemon.rs"));
200    }
201    // v1.4.98 T2-1 (mobile-source-audit Phase 2): 摆盘步长 SpreadTable cmd 6503
202    // 来源: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmdSpread6503.proto
203    pub mod spread_table_6503 {
204        include!(concat!(env!("OUT_DIR"), "/spread_table_6503.rs"));
205    }
206    // v1.4.111 10.6 QOT: daily short volume / short interest backend protos.
207    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmdHKShortInfo6379.proto
208    // and us_short_info_svr.proto.
209    pub mod hk_short_info {
210        include!(concat!(env!("OUT_DIR"), "/hk_short_info.rs"));
211    }
212    pub mod us_short_info {
213        include!(concat!(env!("OUT_DIR"), "/us_short_info.rs"));
214    }
215    // v10.6.6608 QOT GetCorporateActionsBuybacks backend wire subset.
216    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmd9410.proto:15-68.
217    pub mod f10_buyback_detail {
218        include!(concat!(env!("OUT_DIR"), "/f10_buyback_detail.rs"));
219    }
220    // v10.6.6608 QOT GetCorporateActionsStockSplits HK / non-HK backend wire subsets.
221    // Sources: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmd9415.proto
222    // and exright.proto.
223    pub mod f10_split_share {
224        include!(concat!(env!("OUT_DIR"), "/f10_split_share.rs"));
225    }
226    pub mod exright_svc {
227        include!(concat!(env!("OUT_DIR"), "/exright_svc.rs"));
228    }
229    // v10.6.6608 QOT GetCorporateActionsDividends normal branch.
230    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/dividend.proto:34-81.
231    pub mod dividend_svc {
232        include!(concat!(env!("OUT_DIR"), "/dividend_svc.rs"));
233    }
234    // v10.6.6608 QOT GetTopTenBuySellBrokers realtime / historical backend wire subsets.
235    // Sources: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmdSecCapTrack.proto
236    // and FTCmdHKBrokerHold.proto.
237    pub mod sec_cap_track {
238        include!(concat!(env!("OUT_DIR"), "/sec_cap_track.rs"));
239    }
240    pub mod broker_hold {
241        include!(concat!(env!("OUT_DIR"), "/broker_hold.rs"));
242    }
243    // v10.6.6608 QOT GetShareholdersOverview backend wire subset.
244    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/ownership_new.proto:20-47,312-323.
245    pub mod ownership_new {
246        include!(concat!(env!("OUT_DIR"), "/ownership_new.rs"));
247    }
248    // v10.6.6608 QOT GetOptionVolatility backend wire subset.
249    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/api_option_analysis_svr.proto:281-303.
250    pub mod api_option_analysis_svr {
251        include!(concat!(env!("OUT_DIR"), "/api_option_analysis_svr.rs"));
252    }
253    pub mod ft_cmd_ipo_calender6955_6959 {
254        include!(concat!(env!("OUT_DIR"), "/ft_cmd_ipo_calender6955_6959.rs"));
255    }
256    // v10.7.6708 QOT JP IPO list backend wire.
257    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmdGetIPOList20751.proto.
258    pub mod ft_cmd_get_ipo_list20751 {
259        include!(concat!(env!("OUT_DIR"), "/ft_cmd_get_ipo_list20751.rs"));
260    }
261    pub mod ft_cmd_us_future_info {
262        include!(concat!(env!("OUT_DIR"), "/ft_cmd_us_future_info.rs"));
263    }
264    pub mod ftcmd6513 {
265        include!(concat!(env!("OUT_DIR"), "/ftcmd6513.rs"));
266    }
267    // v10.6.6608 QOT WarrantScreen backend V2 wire.
268    // Sources: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmd20334.proto
269    // and wrnt_screener_common.proto.
270    pub mod wrnt_screener_common {
271        include!(concat!(env!("OUT_DIR"), "/wrnt_screener_common.rs"));
272    }
273    pub mod ftcmd20334 {
274        include!(concat!(env!("OUT_DIR"), "/ftcmd20334.rs"));
275    }
276    pub mod ft_cmd_stock_screener {
277        include!(concat!(env!("OUT_DIR"), "/ft_cmd_stock_screener.rs"));
278    }
279    // v10.6.6608 QOT StockScreen backend V2 wire.
280    // Sources: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/stock_screener_common.proto
281    // and finder.proto (StockScreenV2Req / StockScreenV2Rsp).
282    pub mod stock_screener_common {
283        include!(concat!(env!("OUT_DIR"), "/stock_screener_common.rs"));
284    }
285    pub mod stock_screener_finder {
286        include!(concat!(env!("OUT_DIR"), "/stock_screener_finder.rs"));
287    }
288    // v10.6.6608 QOT OptionScreen backend wire.
289    // Sources: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/FTCmdScreener.proto,
290    // FTCmdOptionScreener.proto, and option_screener_svc.proto.
291    pub mod ft_cmd_screener {
292        include!(concat!(env!("OUT_DIR"), "/ft_cmd_screener.rs"));
293    }
294    pub mod ft_cmd_option_screener {
295        include!(concat!(env!("OUT_DIR"), "/ft_cmd_option_screener.rs"));
296    }
297    pub mod option_screener_svc {
298        include!(concat!(env!("OUT_DIR"), "/option_screener_svc.rs"));
299    }
300    pub mod ft_cmd_trade_auth {
301        include!(concat!(env!("OUT_DIR"), "/ft_cmd_trade_auth.rs"));
302    }
303    pub mod ftcmd6621_6640 {
304        include!(concat!(env!("OUT_DIR"), "/ftcmd6621_6640.rs"));
305    }
306    pub mod wch_lst {
307        include!(concat!(env!("OUT_DIR"), "/wch_lst.rs"));
308    }
309    pub mod ft_cmd_price_warn {
310        include!(concat!(env!("OUT_DIR"), "/ft_cmd_price_warn.rs"));
311    }
312    pub mod stock_suspend {
313        include!(concat!(env!("OUT_DIR"), "/stock_suspend.rs"));
314    }
315    pub mod ft_cmd_hp_plate {
316        include!(concat!(env!("OUT_DIR"), "/ft_cmd_hp_plate.rs"));
317    }
318    pub mod stock_ratio_info {
319        include!(concat!(env!("OUT_DIR"), "/stock_ratio_info.rs"));
320    }
321    pub mod order_fee_query {
322        include!(concat!(env!("OUT_DIR"), "/order_fee_query.rs"));
323    }
324    // v1.4.109 crypto trade: server-side wire protos introduced by C++
325    // OpenD 10.5.6508. Source: NNProtoFile/Server/PB/Trade/*crypto* /
326    // inbound_* / asset_pl / cash_change_detail_cmn.
327    pub mod trade_cmn {
328        include!(concat!(env!("OUT_DIR"), "/trade_cmn.rs"));
329    }
330    pub mod asset_pl {
331        include!(concat!(env!("OUT_DIR"), "/asset_pl.rs"));
332    }
333    pub mod crypto_account_asset_cmn {
334        include!(concat!(env!("OUT_DIR"), "/crypto_account_asset_cmn.rs"));
335    }
336    pub mod crypto_risk_comm {
337        include!(concat!(env!("OUT_DIR"), "/crypto_risk_comm.rs"));
338    }
339    pub mod crypto_risk {
340        include!(concat!(env!("OUT_DIR"), "/crypto_risk.rs"));
341    }
342    pub mod config_base {
343        include!(concat!(env!("OUT_DIR"), "/config_base.rs"));
344    }
345    pub mod inbound_oe {
346        include!(concat!(env!("OUT_DIR"), "/inbound_oe.rs"));
347    }
348    pub mod inbound_read {
349        include!(concat!(env!("OUT_DIR"), "/inbound_read.rs"));
350    }
351    pub mod cash_change_detail_cmn {
352        include!(concat!(env!("OUT_DIR"), "/cash_change_detail_cmn.rs"));
353    }
354    pub mod va_asset_changed_notification {
355        include!(concat!(
356            env!("OUT_DIR"),
357            "/va_asset_changed_notification.rs"
358        ));
359    }
360    // v1.4.108 GetMaxTrdQtys option IM side request.
361    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Trade/FTCmd5004.proto
362    pub mod ft_cmd5004 {
363        include!(concat!(env!("OUT_DIR"), "/ft_cmd5004.rs"));
364    }
365    pub mod soa_std_data {
366        include!(concat!(env!("OUT_DIR"), "/soa_std_data.rs"));
367    }
368    pub mod asset_query {
369        include!(concat!(env!("OUT_DIR"), "/asset_query.rs"));
370    }
371    pub mod ft_cmd_stock_quote_fetch {
372        include!(concat!(env!("OUT_DIR"), "/ft_cmd_stock_quote_fetch.rs"));
373    }
374    pub mod ft_conn_ip {
375        include!(concat!(env!("OUT_DIR"), "/ft_conn_ip.rs"));
376    }
377    pub mod ft_conn_ping {
378        include!(concat!(env!("OUT_DIR"), "/ft_conn_ping.rs"));
379    }
380    /// CMD 20176 GetValidBrokerList (v1.4.22) — 对齐 C++ `FTConnBind.proto`
381    pub mod ft_conn_bind {
382        include!(concat!(env!("OUT_DIR"), "/ft_conn_bind.rs"));
383    }
384    pub mod msgcenter {
385        include!(concat!(env!("OUT_DIR"), "/msgcenter.rs"));
386    }
387    pub mod msgdefine {
388        include!(concat!(env!("OUT_DIR"), "/msgdefine.rs"));
389    }
390    pub mod qta_auth {
391        include!(concat!(env!("OUT_DIR"), "/qta_auth.rs"));
392    }
393    /// CMD7506 QueryUserProfile — GetUserInfo.nickName/avatarUrl backend source.
394    ///
395    /// Source: FutuOpenD/Src/NNProtoFile/Server/PB/User/FTCmdSnsProfile.proto.
396    pub mod ft_cmd_sns_profile {
397        include!(concat!(env!("OUT_DIR"), "/ft_cmd_sns_profile.rs"));
398    }
399    // v1.4.44: QtaAuth6024_Rsp 补 43 字段依赖 FTCMD6651_QtaAuthChg.proto 里的
400    // QuoteChangeNotify。generated as `ftcmd6651_qta_auth_chg.rs` in OUT_DIR。
401    pub mod ftcmd6651_qta_auth_chg {
402        include!(concat!(env!("OUT_DIR"), "/ftcmd6651_qta_auth_chg.rs"));
403    }
404    // v1.4.106 codex 1217 F5 [P2] (5月1日): CMD 6006 行情权限变更通知 (旧路径).
405    pub mod ftcmd6006_qta_auth_chg {
406        include!(concat!(env!("OUT_DIR"), "/ftcmd6006_qta_auth_chg.rs"));
407    }
408    // v1.4.106 codex 1140 F7: CMD 18008 (NN_ProtoCmd_Qot_Pull_BrokerInfo)
409    // 拉取券商配置表 (BrokerConfigReq/Rsp + BrokerInfoList).
410    // 来源 quote_config_svr.proto (audit Finding 7).
411    pub mod quote_config_svr_broker {
412        include!(concat!(env!("OUT_DIR"), "/quote_config_svr_broker.rs"));
413    }
414    // v1.4.110 codex QOT C++ alignment Slice 2: CMD9419 主推券商 + 数字货币主推券商.
415    // 来源: NNProtoFile/Server/PB/Trade/main_broker_svr.proto + main_broker_base.proto
416    // 用途: QOT `securityFirm=Unknown` 时 `GetCryptoSupportedDefaultMainBroker`
417    //       数据源 (`main_brokers` / `crypto_brokers` 顺序).
418    pub mod main_broker_svr {
419        include!(concat!(env!("OUT_DIR"), "/main_broker_svr.rs"));
420    }
421    // v1.4.110 codex QOT C++ alignment Phase 4 Slice 7: CMD18012 GetLv2RelatedExchange.
422    // 来源: NNProtoFile/Server/PB/Quote/FTMdfRelatedSvr.proto.
423    // 用途: crypto LV2 摆盘订阅前查"该 stock 在该 broker 下关联的交易所列表",
424    //       每个交易所对应一个 lv2_prob (USLV2OrderSubProb), daemon 合并发起
425    //       CMD6824 sub + 40 档 merge 合到 broker-level orderbook cache.
426    pub mod ft_mdf_related_svr {
427        include!(concat!(env!("OUT_DIR"), "/ft_mdf_related_svr.rs"));
428    }
429    // v10.6.6608 QOT GetCompanyProfile normal branch.
430    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/F10_svc.proto:5810-5831.
431    pub mod f10_svc {
432        include!(concat!(env!("OUT_DIR"), "/f10_svc.rs"));
433    }
434    // v10.6.6608 QOT GetCompanyOperationalEfficiency backend wire subset.
435    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/F10_figure_svr.proto:540-580.
436    pub mod f10_figure_svr {
437        include!(concat!(env!("OUT_DIR"), "/f10_figure_svr.rs"));
438    }
439    // v10.6.6608 QOT GetFinancialsStatements backend wire subset.
440    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/financial_svr.proto:1-163.
441    pub mod financial_svr {
442        include!(concat!(env!("OUT_DIR"), "/financial_svr.rs"));
443    }
444    // v10.6.6608 QOT GetFinancialsRevenueBreakdown backend wire subset.
445    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/main_income.proto:27-60.
446    pub mod main_income_svr {
447        include!(concat!(env!("OUT_DIR"), "/main_income_svr.rs"));
448    }
449    // v10.6.6608 QOT GetResearchAnalystConsensus backend wire subset.
450    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/quote_analyst_svr.proto:24-193.
451    pub mod quote_analyst_svr {
452        include!(concat!(env!("OUT_DIR"), "/quote_analyst_svr.rs"));
453    }
454    // v10.6.6608 QOT GetResearchMorningstarReport backend wire subset.
455    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/morningstar_rating_svr.proto.
456    pub mod morningstar_rating_svr {
457        include!(concat!(env!("OUT_DIR"), "/morningstar_rating_svr.rs"));
458    }
459    // v10.6.6608 QOT GetValuationPlateStockList backend wire subset.
460    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/dm_stock_valuation.proto:262-360.
461    pub mod stock_valuation {
462        include!(concat!(env!("OUT_DIR"), "/stock_valuation.rs"));
463    }
464    // v10.6.6608 QOT GetCompanyProfile ETF branch.
465    // Source: FutuOpenD/Src/NNProtoFile/Server/PB/Quote/hk_etf.proto:8-96.
466    pub mod hk_etf {
467        include!(concat!(env!("OUT_DIR"), "/hk_etf.rs"));
468    }
469}
470
471#[cfg(test)]
472mod user_account_info_manager_service_tests;