futucli/
qot_sdk_adapter.rs1use futu_core::qot_symbol::ParsedQotSymbol;
2use futu_proto::qot_common;
3use futu_qot::types::{KLType, QotMarket, RehabType, Security, SubType};
4
5pub(crate) fn security_from_parsed_symbol(parsed: ParsedQotSymbol) -> Security {
9 Security::new(QotMarket::from_i32(parsed.market), parsed.code)
10}
11
12pub(crate) fn qot_market_from_id(market: i32) -> QotMarket {
15 QotMarket::from_i32(market)
16}
17
18pub(crate) fn sub_type_from_id(sub_type: i32) -> Option<SubType> {
21 SubType::from_i32(sub_type)
22}
23
24pub(crate) fn basic_sub_type() -> SubType {
26 SubType::Basic
27}
28
29pub(crate) fn order_book_sub_type(odd_lot: bool) -> SubType {
31 if odd_lot {
32 SubType::OrderBookOdd
33 } else {
34 SubType::OrderBook
35 }
36}
37
38pub(crate) fn rt_sub_type() -> SubType {
40 SubType::RT
41}
42
43pub(crate) fn ticker_sub_type() -> SubType {
45 SubType::Ticker
46}
47
48pub(crate) fn broker_sub_type() -> SubType {
50 SubType::Broker
51}
52
53pub(crate) fn kl_type_from_public_id(kl_type: i32) -> Option<KLType> {
56 KLType::from_public_i32(kl_type)
57}
58
59pub(crate) const fn rehab_type_from_id(rehab_type: i32) -> Option<RehabType> {
61 match rehab_type {
62 0 => Some(RehabType::None),
63 1 => Some(RehabType::Forward),
64 2 => Some(RehabType::Backward),
65 _ => None,
66 }
67}
68
69pub(crate) fn security_from_proto(sec: &qot_common::Security) -> Security {
72 Security::from_proto(sec)
73}