1use crate::types::{ModifyOrderOp, OrderType, TrdEnv, TrdSide};
7
8pub use futu_core::trade_parsing::{
9 MODIFY_OP_PARSE_CHOICES, ORDER_TYPE_INT_VALUES, ORDER_TYPE_PARSE_CHOICES,
10 TRD_ENV_PARSE_CHOICES, TRD_SIDE_PARSE_CHOICES,
11};
12
13#[must_use]
14pub fn parse_trd_env(raw: &str) -> Option<TrdEnv> {
15 futu_core::trade_parsing::parse_trd_env_id(raw).and_then(trd_env_from_i32)
16}
17
18#[must_use]
19pub fn parse_trd_side(raw: &str) -> Option<TrdSide> {
20 futu_core::trade_parsing::parse_trd_side_id(raw).and_then(trd_side_from_i32)
21}
22
23#[must_use]
24pub fn parse_order_type(raw: &str) -> Option<OrderType> {
25 futu_core::trade_parsing::parse_order_type_id(raw).and_then(order_type_from_i32)
26}
27
28#[must_use]
29pub fn trd_env_from_i32(value: i32) -> Option<TrdEnv> {
30 TrdEnv::try_from(value).ok()
31}
32
33#[must_use]
34pub fn trd_side_from_i32(value: i32) -> Option<TrdSide> {
35 TrdSide::try_from(value).ok()
36}
37
38#[must_use]
39pub fn order_type_from_i32(value: i32) -> Option<OrderType> {
40 OrderType::try_from(value).ok()
41}
42
43#[must_use]
44pub fn parse_modify_op(raw: &str) -> Option<ModifyOrderOp> {
45 futu_core::trade_parsing::parse_modify_op_id(raw).and_then(modify_op_from_i32)
46}
47
48#[must_use]
49pub fn modify_op_from_i32(value: i32) -> Option<ModifyOrderOp> {
50 ModifyOrderOp::try_from(value).ok()
51}
52
53#[cfg(test)]
54mod tests;