ctp_rs/
lib.rs

1#![allow(non_camel_case_types)]
2#![allow(non_snake_case)]
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(dead_code)]
6
7pub use ffi::*;
8use std::fs::create_dir_all;
9use std::mem::forget;
10use std::path::Path;
11use std::sync::mpsc::Sender;
12use std::sync::Arc;
13
14pub type UniquePtr<T> = cxx::UniquePtr<T>;
15
16pub enum THOST_TE_RESUME_TYPE {
17    THOST_TERT_RESTART = 0,
18    THOST_TERT_RESUME,
19    THOST_TERT_QUICK,
20    THOST_TERT_NONE,
21}
22
23pub const THOST_FTDC_EXP_Normal: u8 = '0' as u8;
24pub const THOST_FTDC_EXP_GenOrderByTrade: u8 = '1' as u8;
25pub const THOST_FTDC_ICT_EID: u8 = '0' as u8;
26pub const THOST_FTDC_ICT_IDCard: u8 = '1' as u8;
27pub const THOST_FTDC_ICT_OfficerIDCard: u8 = '2' as u8;
28pub const THOST_FTDC_ICT_PoliceIDCard: u8 = '3' as u8;
29pub const THOST_FTDC_ICT_SoldierIDCard: u8 = '4' as u8;
30pub const THOST_FTDC_ICT_HouseholdRegister: u8 = '5' as u8;
31pub const THOST_FTDC_ICT_Passport: u8 = '6' as u8;
32pub const THOST_FTDC_ICT_TaiwanCompatriotIDCard: u8 = '7' as u8;
33pub const THOST_FTDC_ICT_HomeComingCard: u8 = '8' as u8;
34pub const THOST_FTDC_ICT_LicenseNo: u8 = '9' as u8;
35pub const THOST_FTDC_ICT_TaxNo: u8 = 'A' as u8;
36pub const THOST_FTDC_ICT_HMMainlandTravelPermit: u8 = 'B' as u8;
37pub const THOST_FTDC_ICT_TwMainlandTravelPermit: u8 = 'C' as u8;
38pub const THOST_FTDC_ICT_DrivingLicense: u8 = 'D' as u8;
39pub const THOST_FTDC_ICT_SocialID: u8 = 'F' as u8;
40pub const THOST_FTDC_ICT_LocalID: u8 = 'G' as u8;
41pub const THOST_FTDC_ICT_BusinessRegistration: u8 = 'H' as u8;
42pub const THOST_FTDC_ICT_HKMCIDCard: u8 = 'I' as u8;
43pub const THOST_FTDC_ICT_AccountsPermits: u8 = 'J' as u8;
44pub const THOST_FTDC_ICT_FrgPrmtRdCard: u8 = 'K' as u8;
45pub const THOST_FTDC_ICT_CptMngPrdLetter: u8 = 'L' as u8;
46pub const THOST_FTDC_ICT_HKMCTwResidencePermit: u8 = 'M' as u8;
47pub const THOST_FTDC_ICT_UniformSocialCreditCode: u8 = 'N' as u8;
48pub const THOST_FTDC_ICT_CorporationCertNo: u8 = 'O' as u8;
49pub const THOST_FTDC_ICT_OtherCard: u8 = 'x' as u8;
50pub const THOST_FTDC_IR_All: u8 = '1' as u8;
51pub const THOST_FTDC_IR_Group: u8 = '2' as u8;
52pub const THOST_FTDC_IR_Single: u8 = '3' as u8;
53pub const THOST_FTDC_DR_All: u8 = '1' as u8;
54pub const THOST_FTDC_DR_Group: u8 = '2' as u8;
55pub const THOST_FTDC_DR_Single: u8 = '3' as u8;
56pub const THOST_FTDC_DS_Asynchronous: u8 = '1' as u8;
57pub const THOST_FTDC_DS_Synchronizing: u8 = '2' as u8;
58pub const THOST_FTDC_DS_Synchronized: u8 = '3' as u8;
59pub const THOST_FTDC_BDS_Synchronized: u8 = '1' as u8;
60pub const THOST_FTDC_BDS_Synchronizing: u8 = '2' as u8;
61pub const THOST_FTDC_ECS_NoConnection: u8 = '1' as u8;
62pub const THOST_FTDC_ECS_QryInstrumentSent: u8 = '2' as u8;
63pub const THOST_FTDC_ECS_GotInformation: u8 = '9' as u8;
64pub const THOST_FTDC_TCS_NotConnected: u8 = '1' as u8;
65pub const THOST_FTDC_TCS_Connected: u8 = '2' as u8;
66pub const THOST_FTDC_TCS_QryInstrumentSent: u8 = '3' as u8;
67pub const THOST_FTDC_TCS_SubPrivateFlow: u8 = '4' as u8;
68pub const THOST_FTDC_FC_DataAsync: u8 = '1' as u8;
69pub const THOST_FTDC_FC_ForceUserLogout: u8 = '2' as u8;
70pub const THOST_FTDC_FC_UserPasswordUpdate: u8 = '3' as u8;
71pub const THOST_FTDC_FC_BrokerPasswordUpdate: u8 = '4' as u8;
72pub const THOST_FTDC_FC_InvestorPasswordUpdate: u8 = '5' as u8;
73pub const THOST_FTDC_FC_OrderInsert: u8 = '6' as u8;
74pub const THOST_FTDC_FC_OrderAction: u8 = '7' as u8;
75pub const THOST_FTDC_FC_SyncSystemData: u8 = '8' as u8;
76pub const THOST_FTDC_FC_SyncBrokerData: u8 = '9' as u8;
77pub const THOST_FTDC_FC_BachSyncBrokerData: u8 = 'A' as u8;
78pub const THOST_FTDC_FC_SuperQuery: u8 = 'B' as u8;
79pub const THOST_FTDC_FC_ParkedOrderInsert: u8 = 'C' as u8;
80pub const THOST_FTDC_FC_ParkedOrderAction: u8 = 'D' as u8;
81pub const THOST_FTDC_FC_SyncOTP: u8 = 'E' as u8;
82pub const THOST_FTDC_FC_DeleteOrder: u8 = 'F' as u8;
83pub const THOST_FTDC_FC_ExitEmergency: u8 = 'G' as u8;
84pub const THOST_FTDC_BFC_ForceUserLogout: u8 = '1' as u8;
85pub const THOST_FTDC_BFC_UserPasswordUpdate: u8 = '2' as u8;
86pub const THOST_FTDC_BFC_SyncBrokerData: u8 = '3' as u8;
87pub const THOST_FTDC_BFC_BachSyncBrokerData: u8 = '4' as u8;
88pub const THOST_FTDC_BFC_OrderInsert: u8 = '5' as u8;
89pub const THOST_FTDC_BFC_OrderAction: u8 = '6' as u8;
90pub const THOST_FTDC_BFC_AllQuery: u8 = '7' as u8;
91pub const THOST_FTDC_BFC_log: u8 = 'a' as u8;
92pub const THOST_FTDC_BFC_BaseQry: u8 = 'b' as u8;
93pub const THOST_FTDC_BFC_TradeQry: u8 = 'c' as u8;
94pub const THOST_FTDC_BFC_Trade: u8 = 'd' as u8;
95pub const THOST_FTDC_BFC_Virement: u8 = 'e' as u8;
96pub const THOST_FTDC_BFC_Risk: u8 = 'f' as u8;
97pub const THOST_FTDC_BFC_Session: u8 = 'g' as u8;
98pub const THOST_FTDC_BFC_RiskNoticeCtl: u8 = 'h' as u8;
99pub const THOST_FTDC_BFC_RiskNotice: u8 = 'i' as u8;
100pub const THOST_FTDC_BFC_BrokerDeposit: u8 = 'j' as u8;
101pub const THOST_FTDC_BFC_QueryFund: u8 = 'k' as u8;
102pub const THOST_FTDC_BFC_QueryOrder: u8 = 'l' as u8;
103pub const THOST_FTDC_BFC_QueryTrade: u8 = 'm' as u8;
104pub const THOST_FTDC_BFC_QueryPosition: u8 = 'n' as u8;
105pub const THOST_FTDC_BFC_QueryMarketData: u8 = 'o' as u8;
106pub const THOST_FTDC_BFC_QueryUserEvent: u8 = 'p' as u8;
107pub const THOST_FTDC_BFC_QueryRiskNotify: u8 = 'q' as u8;
108pub const THOST_FTDC_BFC_QueryFundChange: u8 = 'r' as u8;
109pub const THOST_FTDC_BFC_QueryInvestor: u8 = 's' as u8;
110pub const THOST_FTDC_BFC_QueryTradingCode: u8 = 't' as u8;
111pub const THOST_FTDC_BFC_ForceClose: u8 = 'u' as u8;
112pub const THOST_FTDC_BFC_PressTest: u8 = 'v' as u8;
113pub const THOST_FTDC_BFC_RemainCalc: u8 = 'w' as u8;
114pub const THOST_FTDC_BFC_NetPositionInd: u8 = 'x' as u8;
115pub const THOST_FTDC_BFC_RiskPredict: u8 = 'y' as u8;
116pub const THOST_FTDC_BFC_DataExport: u8 = 'z' as u8;
117pub const THOST_FTDC_BFC_RiskTargetSetup: u8 = 'A' as u8;
118pub const THOST_FTDC_BFC_MarketDataWarn: u8 = 'B' as u8;
119pub const THOST_FTDC_BFC_QryBizNotice: u8 = 'C' as u8;
120pub const THOST_FTDC_BFC_CfgBizNotice: u8 = 'D' as u8;
121pub const THOST_FTDC_BFC_SyncOTP: u8 = 'E' as u8;
122pub const THOST_FTDC_BFC_SendBizNotice: u8 = 'F' as u8;
123pub const THOST_FTDC_BFC_CfgRiskLevelStd: u8 = 'G' as u8;
124pub const THOST_FTDC_BFC_TbCommand: u8 = 'H' as u8;
125pub const THOST_FTDC_BFC_DeleteOrder: u8 = 'J' as u8;
126pub const THOST_FTDC_BFC_ParkedOrderInsert: u8 = 'K' as u8;
127pub const THOST_FTDC_BFC_ParkedOrderAction: u8 = 'L' as u8;
128pub const THOST_FTDC_BFC_ExecOrderNoCheck: u8 = 'M' as u8;
129pub const THOST_FTDC_BFC_Designate: u8 = 'N' as u8;
130pub const THOST_FTDC_BFC_StockDisposal: u8 = 'O' as u8;
131pub const THOST_FTDC_BFC_BrokerDepositWarn: u8 = 'Q' as u8;
132pub const THOST_FTDC_BFC_CoverWarn: u8 = 'S' as u8;
133pub const THOST_FTDC_BFC_PreExecOrder: u8 = 'T' as u8;
134pub const THOST_FTDC_BFC_ExecOrderRisk: u8 = 'P' as u8;
135pub const THOST_FTDC_BFC_PosiLimitWarn: u8 = 'U' as u8;
136pub const THOST_FTDC_BFC_QryPosiLimit: u8 = 'V' as u8;
137pub const THOST_FTDC_BFC_FBSign: u8 = 'W' as u8;
138pub const THOST_FTDC_BFC_FBAccount: u8 = 'X' as u8;
139pub const THOST_FTDC_OAS_Submitted: u8 = 'a' as u8;
140pub const THOST_FTDC_OAS_Accepted: u8 = 'b' as u8;
141pub const THOST_FTDC_OAS_Rejected: u8 = 'c' as u8;
142pub const THOST_FTDC_OST_AllTraded: u8 = '0' as u8;
143pub const THOST_FTDC_OST_PartTradedQueueing: u8 = '1' as u8;
144pub const THOST_FTDC_OST_PartTradedNotQueueing: u8 = '2' as u8;
145pub const THOST_FTDC_OST_NoTradeQueueing: u8 = '3' as u8;
146pub const THOST_FTDC_OST_NoTradeNotQueueing: u8 = '4' as u8;
147pub const THOST_FTDC_OST_Canceled: u8 = '5' as u8;
148pub const THOST_FTDC_OST_Unknown: u8 = 'a' as u8;
149pub const THOST_FTDC_OST_NotTouched: u8 = 'b' as u8;
150pub const THOST_FTDC_OST_Touched: u8 = 'c' as u8;
151pub const THOST_FTDC_OSS_InsertSubmitted: u8 = '0' as u8;
152pub const THOST_FTDC_OSS_CancelSubmitted: u8 = '1' as u8;
153pub const THOST_FTDC_OSS_ModifySubmitted: u8 = '2' as u8;
154pub const THOST_FTDC_OSS_Accepted: u8 = '3' as u8;
155pub const THOST_FTDC_OSS_InsertRejected: u8 = '4' as u8;
156pub const THOST_FTDC_OSS_CancelRejected: u8 = '5' as u8;
157pub const THOST_FTDC_OSS_ModifyRejected: u8 = '6' as u8;
158pub const THOST_FTDC_PSD_Today: u8 = '1' as u8;
159pub const THOST_FTDC_PSD_History: u8 = '2' as u8;
160pub const THOST_FTDC_PDT_UseHistory: u8 = '1' as u8;
161pub const THOST_FTDC_PDT_NoUseHistory: u8 = '2' as u8;
162pub const THOST_FTDC_ER_Broker: u8 = '1' as u8;
163pub const THOST_FTDC_ER_Host: u8 = '2' as u8;
164pub const THOST_FTDC_ER_Maker: u8 = '3' as u8;
165pub const THOST_FTDC_PC_Futures: u8 = '1' as u8;
166pub const THOST_FTDC_PC_Options: u8 = '2' as u8;
167pub const THOST_FTDC_PC_Combination: u8 = '3' as u8;
168pub const THOST_FTDC_PC_Spot: u8 = '4' as u8;
169pub const THOST_FTDC_PC_EFP: u8 = '5' as u8;
170pub const THOST_FTDC_PC_SpotOption: u8 = '6' as u8;
171pub const THOST_FTDC_PC_TAS: u8 = '7' as u8;
172pub const THOST_FTDC_PC_MI: u8 = 'I' as u8;
173pub const THOST_FTDC_APC_FutureSingle: u8 = '1' as u8;
174pub const THOST_FTDC_APC_OptionSingle: u8 = '2' as u8;
175pub const THOST_FTDC_APC_Futures: u8 = '3' as u8;
176pub const THOST_FTDC_APC_Options: u8 = '4' as u8;
177pub const THOST_FTDC_APC_TradingComb: u8 = '5' as u8;
178pub const THOST_FTDC_APC_UnTradingComb: u8 = '6' as u8;
179pub const THOST_FTDC_APC_AllTrading: u8 = '7' as u8;
180pub const THOST_FTDC_APC_All: u8 = '8' as u8;
181pub const THOST_FTDC_IP_NotStart: u8 = '0' as u8;
182pub const THOST_FTDC_IP_Started: u8 = '1' as u8;
183pub const THOST_FTDC_IP_Pause: u8 = '2' as u8;
184pub const THOST_FTDC_IP_Expired: u8 = '3' as u8;
185pub const THOST_FTDC_D_Buy: u8 = '0' as u8;
186pub const THOST_FTDC_D_Sell: u8 = '1' as u8;
187pub const THOST_FTDC_PT_Net: u8 = '1' as u8;
188pub const THOST_FTDC_PT_Gross: u8 = '2' as u8;
189pub const THOST_FTDC_PD_Net: u8 = '1' as u8;
190pub const THOST_FTDC_PD_Long: u8 = '2' as u8;
191pub const THOST_FTDC_PD_Short: u8 = '3' as u8;
192pub const THOST_FTDC_SS_NonActive: u8 = '1' as u8;
193pub const THOST_FTDC_SS_Startup: u8 = '2' as u8;
194pub const THOST_FTDC_SS_Operating: u8 = '3' as u8;
195pub const THOST_FTDC_SS_Settlement: u8 = '4' as u8;
196pub const THOST_FTDC_SS_SettlementFinished: u8 = '5' as u8;
197pub const THOST_FTDC_RA_Trade: u8 = '0' as u8;
198pub const THOST_FTDC_RA_Settlement: u8 = '1' as u8;
199pub const THOST_FTDC_HF_Speculation: u8 = '1' as u8;
200pub const THOST_FTDC_HF_Arbitrage: u8 = '2' as u8;
201pub const THOST_FTDC_HF_Hedge: u8 = '3' as u8;
202pub const THOST_FTDC_HF_MarketMaker: u8 = '5' as u8;
203pub const THOST_FTDC_HF_SpecHedge: u8 = '6' as u8;
204pub const THOST_FTDC_HF_HedgeSpec: u8 = '7' as u8;
205pub const THOST_FTDC_BHF_Speculation: u8 = '1' as u8;
206pub const THOST_FTDC_BHF_Arbitrage: u8 = '2' as u8;
207pub const THOST_FTDC_BHF_Hedge: u8 = '3' as u8;
208pub const THOST_FTDC_CIDT_Speculation: u8 = '1' as u8;
209pub const THOST_FTDC_CIDT_Arbitrage: u8 = '2' as u8;
210pub const THOST_FTDC_CIDT_Hedge: u8 = '3' as u8;
211pub const THOST_FTDC_CIDT_MarketMaker: u8 = '5' as u8;
212pub const THOST_FTDC_OPT_AnyPrice: u8 = '1' as u8;
213pub const THOST_FTDC_OPT_LimitPrice: u8 = '2' as u8;
214pub const THOST_FTDC_OPT_BestPrice: u8 = '3' as u8;
215pub const THOST_FTDC_OPT_LastPrice: u8 = '4' as u8;
216pub const THOST_FTDC_OPT_LastPricePlusOneTicks: u8 = '5' as u8;
217pub const THOST_FTDC_OPT_LastPricePlusTwoTicks: u8 = '6' as u8;
218pub const THOST_FTDC_OPT_LastPricePlusThreeTicks: u8 = '7' as u8;
219pub const THOST_FTDC_OPT_AskPrice1: u8 = '8' as u8;
220pub const THOST_FTDC_OPT_AskPrice1PlusOneTicks: u8 = '9' as u8;
221pub const THOST_FTDC_OPT_AskPrice1PlusTwoTicks: u8 = 'A' as u8;
222pub const THOST_FTDC_OPT_AskPrice1PlusThreeTicks: u8 = 'B' as u8;
223pub const THOST_FTDC_OPT_BidPrice1: u8 = 'C' as u8;
224pub const THOST_FTDC_OPT_BidPrice1PlusOneTicks: u8 = 'D' as u8;
225pub const THOST_FTDC_OPT_BidPrice1PlusTwoTicks: u8 = 'E' as u8;
226pub const THOST_FTDC_OPT_BidPrice1PlusThreeTicks: u8 = 'F' as u8;
227pub const THOST_FTDC_OPT_FiveLevelPrice: u8 = 'G' as u8;
228pub const THOST_FTDC_OF_Open: u8 = '0' as u8;
229pub const THOST_FTDC_OF_Close: u8 = '1' as u8;
230pub const THOST_FTDC_OF_ForceClose: u8 = '2' as u8;
231pub const THOST_FTDC_OF_CloseToday: u8 = '3' as u8;
232pub const THOST_FTDC_OF_CloseYesterday: u8 = '4' as u8;
233pub const THOST_FTDC_OF_ForceOff: u8 = '5' as u8;
234pub const THOST_FTDC_OF_LocalForceClose: u8 = '6' as u8;
235pub const THOST_FTDC_FCC_NotForceClose: u8 = '0' as u8;
236pub const THOST_FTDC_FCC_LackDeposit: u8 = '1' as u8;
237pub const THOST_FTDC_FCC_ClientOverPositionLimit: u8 = '2' as u8;
238pub const THOST_FTDC_FCC_MemberOverPositionLimit: u8 = '3' as u8;
239pub const THOST_FTDC_FCC_NotMultiple: u8 = '4' as u8;
240pub const THOST_FTDC_FCC_Violation: u8 = '5' as u8;
241pub const THOST_FTDC_FCC_Other: u8 = '6' as u8;
242pub const THOST_FTDC_FCC_PersonDeliv: u8 = '7' as u8;
243pub const THOST_FTDC_FCC_Notverifycapital: u8 = '8' as u8;
244pub const THOST_FTDC_FCC_LocalLackDeposit: u8 = '9' as u8;
245pub const THOST_FTDC_FCC_LocalViolationNocheck: u8 = 'a' as u8;
246pub const THOST_FTDC_FCC_LocalViolation: u8 = 'b' as u8;
247pub const THOST_FTDC_ORDT_Normal: u8 = '0' as u8;
248pub const THOST_FTDC_ORDT_DeriveFromQuote: u8 = '1' as u8;
249pub const THOST_FTDC_ORDT_DeriveFromCombination: u8 = '2' as u8;
250pub const THOST_FTDC_ORDT_Combination: u8 = '3' as u8;
251pub const THOST_FTDC_ORDT_ConditionalOrder: u8 = '4' as u8;
252pub const THOST_FTDC_ORDT_Swap: u8 = '5' as u8;
253pub const THOST_FTDC_ORDT_DeriveFromBlockTrade: u8 = '6' as u8;
254pub const THOST_FTDC_ORDT_DeriveFromEFPTrade: u8 = '7' as u8;
255pub const THOST_FTDC_TC_IOC: u8 = '1' as u8;
256pub const THOST_FTDC_TC_GFS: u8 = '2' as u8;
257pub const THOST_FTDC_TC_GFD: u8 = '3' as u8;
258pub const THOST_FTDC_TC_GTD: u8 = '4' as u8;
259pub const THOST_FTDC_TC_GTC: u8 = '5' as u8;
260pub const THOST_FTDC_TC_GFA: u8 = '6' as u8;
261pub const THOST_FTDC_VC_AV: u8 = '1' as u8;
262pub const THOST_FTDC_VC_MV: u8 = '2' as u8;
263pub const THOST_FTDC_VC_CV: u8 = '3' as u8;
264pub const THOST_FTDC_CC_Immediately: u8 = '1' as u8;
265pub const THOST_FTDC_CC_Touch: u8 = '2' as u8;
266pub const THOST_FTDC_CC_TouchProfit: u8 = '3' as u8;
267pub const THOST_FTDC_CC_ParkedOrder: u8 = '4' as u8;
268pub const THOST_FTDC_CC_LastPriceGreaterThanStopPrice: u8 = '5' as u8;
269pub const THOST_FTDC_CC_LastPriceGreaterEqualStopPrice: u8 = '6' as u8;
270pub const THOST_FTDC_CC_LastPriceLesserThanStopPrice: u8 = '7' as u8;
271pub const THOST_FTDC_CC_LastPriceLesserEqualStopPrice: u8 = '8' as u8;
272pub const THOST_FTDC_CC_AskPriceGreaterThanStopPrice: u8 = '9' as u8;
273pub const THOST_FTDC_CC_AskPriceGreaterEqualStopPrice: u8 = 'A' as u8;
274pub const THOST_FTDC_CC_AskPriceLesserThanStopPrice: u8 = 'B' as u8;
275pub const THOST_FTDC_CC_AskPriceLesserEqualStopPrice: u8 = 'C' as u8;
276pub const THOST_FTDC_CC_BidPriceGreaterThanStopPrice: u8 = 'D' as u8;
277pub const THOST_FTDC_CC_BidPriceGreaterEqualStopPrice: u8 = 'E' as u8;
278pub const THOST_FTDC_CC_BidPriceLesserThanStopPrice: u8 = 'F' as u8;
279pub const THOST_FTDC_CC_BidPriceLesserEqualStopPrice: u8 = 'H' as u8;
280pub const THOST_FTDC_AF_Delete: u8 = '0' as u8;
281pub const THOST_FTDC_AF_Modify: u8 = '3' as u8;
282pub const THOST_FTDC_TR_Allow: u8 = '0' as u8;
283pub const THOST_FTDC_TR_CloseOnly: u8 = '1' as u8;
284pub const THOST_FTDC_TR_Forbidden: u8 = '2' as u8;
285pub const THOST_FTDC_OSRC_Participant: u8 = '0' as u8;
286pub const THOST_FTDC_OSRC_Administrator: u8 = '1' as u8;
287pub const THOST_FTDC_TRDT_SplitCombination: u8 = '#' as u8;
288pub const THOST_FTDC_TRDT_Common: u8 = '0' as u8;
289pub const THOST_FTDC_TRDT_OptionsExecution: u8 = '1' as u8;
290pub const THOST_FTDC_TRDT_OTC: u8 = '2' as u8;
291pub const THOST_FTDC_TRDT_EFPDerived: u8 = '3' as u8;
292pub const THOST_FTDC_TRDT_CombinationDerived: u8 = '4' as u8;
293pub const THOST_FTDC_TRDT_BlockTrade: u8 = '5' as u8;
294pub const THOST_FTDC_SPOST_Common: u8 = '#' as u8;
295pub const THOST_FTDC_SPOST_Tas: u8 = '0' as u8;
296pub const THOST_FTDC_PSRC_LastPrice: u8 = '0' as u8;
297pub const THOST_FTDC_PSRC_Buy: u8 = '1' as u8;
298pub const THOST_FTDC_PSRC_Sell: u8 = '2' as u8;
299pub const THOST_FTDC_PSRC_OTC: u8 = '3' as u8;
300pub const THOST_FTDC_IS_BeforeTrading: u8 = '0' as u8;
301pub const THOST_FTDC_IS_NoTrading: u8 = '1' as u8;
302pub const THOST_FTDC_IS_Continous: u8 = '2' as u8;
303pub const THOST_FTDC_IS_AuctionOrdering: u8 = '3' as u8;
304pub const THOST_FTDC_IS_AuctionBalance: u8 = '4' as u8;
305pub const THOST_FTDC_IS_AuctionMatch: u8 = '5' as u8;
306pub const THOST_FTDC_IS_Closed: u8 = '6' as u8;
307pub const THOST_FTDC_IS_TransactionProcessing: u8 = '7' as u8;
308pub const THOST_FTDC_IER_Automatic: u8 = '1' as u8;
309pub const THOST_FTDC_IER_Manual: u8 = '2' as u8;
310pub const THOST_FTDC_IER_Fuse: u8 = '3' as u8;
311pub const THOST_FTDC_BS_NoUpload: u8 = '1' as u8;
312pub const THOST_FTDC_BS_Uploaded: u8 = '2' as u8;
313pub const THOST_FTDC_BS_Failed: u8 = '3' as u8;
314pub const THOST_FTDC_RS_All: u8 = '1' as u8;
315pub const THOST_FTDC_RS_ByProduct: u8 = '2' as u8;
316pub const THOST_FTDC_RP_ByVolume: u8 = '1' as u8;
317pub const THOST_FTDC_RP_ByFeeOnHand: u8 = '2' as u8;
318pub const THOST_FTDC_RL_Level1: u8 = '1' as u8;
319pub const THOST_FTDC_RL_Level2: u8 = '2' as u8;
320pub const THOST_FTDC_RL_Level3: u8 = '3' as u8;
321pub const THOST_FTDC_RL_Level4: u8 = '4' as u8;
322pub const THOST_FTDC_RL_Level5: u8 = '5' as u8;
323pub const THOST_FTDC_RL_Level6: u8 = '6' as u8;
324pub const THOST_FTDC_RL_Level7: u8 = '7' as u8;
325pub const THOST_FTDC_RL_Level8: u8 = '8' as u8;
326pub const THOST_FTDC_RL_Level9: u8 = '9' as u8;
327pub const THOST_FTDC_RSD_ByPeriod: u8 = '1' as u8;
328pub const THOST_FTDC_RSD_ByStandard: u8 = '2' as u8;
329pub const THOST_FTDC_MT_Out: u8 = '0' as u8;
330pub const THOST_FTDC_MT_In: u8 = '1' as u8;
331pub const THOST_FTDC_ISPI_MortgageRatio: u8 = '4' as u8;
332pub const THOST_FTDC_ISPI_MarginWay: u8 = '5' as u8;
333pub const THOST_FTDC_ISPI_BillDeposit: u8 = '9' as u8;
334pub const THOST_FTDC_ESPI_MortgageRatio: u8 = '1' as u8;
335pub const THOST_FTDC_ESPI_OtherFundItem: u8 = '2' as u8;
336pub const THOST_FTDC_ESPI_OtherFundImport: u8 = '3' as u8;
337pub const THOST_FTDC_ESPI_CFFEXMinPrepa: u8 = '6' as u8;
338pub const THOST_FTDC_ESPI_CZCESettlementType: u8 = '7' as u8;
339pub const THOST_FTDC_ESPI_ExchDelivFeeMode: u8 = '9' as u8;
340pub const THOST_FTDC_ESPI_DelivFeeMode: u8 = '0' as u8;
341pub const THOST_FTDC_ESPI_CZCEComMarginType: u8 = 'A' as u8;
342pub const THOST_FTDC_ESPI_DceComMarginType: u8 = 'B' as u8;
343pub const THOST_FTDC_ESPI_OptOutDisCountRate: u8 = 'a' as u8;
344pub const THOST_FTDC_ESPI_OptMiniGuarantee: u8 = 'b' as u8;
345pub const THOST_FTDC_SPI_InvestorIDMinLength: u8 = '1' as u8;
346pub const THOST_FTDC_SPI_AccountIDMinLength: u8 = '2' as u8;
347pub const THOST_FTDC_SPI_UserRightLogon: u8 = '3' as u8;
348pub const THOST_FTDC_SPI_SettlementBillTrade: u8 = '4' as u8;
349pub const THOST_FTDC_SPI_TradingCode: u8 = '5' as u8;
350pub const THOST_FTDC_SPI_CheckFund: u8 = '6' as u8;
351pub const THOST_FTDC_SPI_CommModelRight: u8 = '7' as u8;
352pub const THOST_FTDC_SPI_MarginModelRight: u8 = '9' as u8;
353pub const THOST_FTDC_SPI_IsStandardActive: u8 = '8' as u8;
354pub const THOST_FTDC_SPI_UploadSettlementFile: u8 = 'U' as u8;
355pub const THOST_FTDC_SPI_DownloadCSRCFile: u8 = 'D' as u8;
356pub const THOST_FTDC_SPI_SettlementBillFile: u8 = 'S' as u8;
357pub const THOST_FTDC_SPI_CSRCOthersFile: u8 = 'C' as u8;
358pub const THOST_FTDC_SPI_InvestorPhoto: u8 = 'P' as u8;
359pub const THOST_FTDC_SPI_CSRCData: u8 = 'R' as u8;
360pub const THOST_FTDC_SPI_InvestorPwdModel: u8 = 'I' as u8;
361pub const THOST_FTDC_SPI_CFFEXInvestorSettleFile: u8 = 'F' as u8;
362pub const THOST_FTDC_SPI_InvestorIDType: u8 = 'a' as u8;
363pub const THOST_FTDC_SPI_FreezeMaxReMain: u8 = 'r' as u8;
364pub const THOST_FTDC_SPI_IsSync: u8 = 'A' as u8;
365pub const THOST_FTDC_SPI_RelieveOpenLimit: u8 = 'O' as u8;
366pub const THOST_FTDC_SPI_IsStandardFreeze: u8 = 'X' as u8;
367pub const THOST_FTDC_SPI_CZCENormalProductHedge: u8 = 'B' as u8;
368pub const THOST_FTDC_TPID_EncryptionStandard: u8 = 'E' as u8;
369pub const THOST_FTDC_TPID_RiskMode: u8 = 'R' as u8;
370pub const THOST_FTDC_TPID_RiskModeGlobal: u8 = 'G' as u8;
371pub const THOST_FTDC_TPID_modeEncode: u8 = 'P' as u8;
372pub const THOST_FTDC_TPID_tickMode: u8 = 'T' as u8;
373pub const THOST_FTDC_TPID_SingleUserSessionMaxNum: u8 = 'S' as u8;
374pub const THOST_FTDC_TPID_LoginFailMaxNum: u8 = 'L' as u8;
375pub const THOST_FTDC_TPID_IsAuthForce: u8 = 'A' as u8;
376pub const THOST_FTDC_TPID_IsPosiFreeze: u8 = 'F' as u8;
377pub const THOST_FTDC_TPID_IsPosiLimit: u8 = 'M' as u8;
378pub const THOST_FTDC_TPID_ForQuoteTimeInterval: u8 = 'Q' as u8;
379pub const THOST_FTDC_TPID_IsFuturePosiLimit: u8 = 'B' as u8;
380pub const THOST_FTDC_TPID_IsFutureOrderFreq: u8 = 'C' as u8;
381pub const THOST_FTDC_TPID_IsExecOrderProfit: u8 = 'H' as u8;
382pub const THOST_FTDC_TPID_IsCheckBankAcc: u8 = 'I' as u8;
383pub const THOST_FTDC_TPID_PasswordDeadLine: u8 = 'J' as u8;
384pub const THOST_FTDC_TPID_IsStrongPassword: u8 = 'K' as u8;
385pub const THOST_FTDC_TPID_BalanceMorgage: u8 = 'a' as u8;
386pub const THOST_FTDC_TPID_MinPwdLen: u8 = 'O' as u8;
387pub const THOST_FTDC_TPID_LoginFailMaxNumForIP: u8 = 'U' as u8;
388pub const THOST_FTDC_TPID_PasswordPeriod: u8 = 'V' as u8;
389pub const THOST_FTDC_TPID_PwdHistoryCmp: u8 = 'X' as u8;
390pub const THOST_FTDC_TPID_TranferChkProperty: u8 = 'i' as u8;
391pub const THOST_FTDC_TPID_TradeChkPhase: u8 = 'j' as u8;
392pub const THOST_FTDC_TPID_TradeChkPriceVol: u8 = 'k' as u8;
393pub const THOST_FTDC_TPID_NewBESMarginAlgo: u8 = 'l' as u8;
394pub const THOST_FTDC_FI_SettlementFund: u8 = 'F' as u8;
395pub const THOST_FTDC_FI_Trade: u8 = 'T' as u8;
396pub const THOST_FTDC_FI_InvestorPosition: u8 = 'P' as u8;
397pub const THOST_FTDC_FI_SubEntryFund: u8 = 'O' as u8;
398pub const THOST_FTDC_FI_CZCECombinationPos: u8 = 'C' as u8;
399pub const THOST_FTDC_FI_CSRCData: u8 = 'R' as u8;
400pub const THOST_FTDC_FI_CZCEClose: u8 = 'L' as u8;
401pub const THOST_FTDC_FI_CZCENoClose: u8 = 'N' as u8;
402pub const THOST_FTDC_FI_PositionDtl: u8 = 'D' as u8;
403pub const THOST_FTDC_FI_OptionStrike: u8 = 'S' as u8;
404pub const THOST_FTDC_FI_SettlementPriceComparison: u8 = 'M' as u8;
405pub const THOST_FTDC_FI_NonTradePosChange: u8 = 'B' as u8;
406pub const THOST_FTDC_FUT_Settlement: u8 = '0' as u8;
407pub const THOST_FTDC_FUT_Check: u8 = '1' as u8;
408pub const THOST_FTDC_FFT_Txt: u8 = '0' as u8;
409pub const THOST_FTDC_FFT_Zip: u8 = '1' as u8;
410pub const THOST_FTDC_FFT_DBF: u8 = '2' as u8;
411pub const THOST_FTDC_FUS_SucceedUpload: u8 = '1' as u8;
412pub const THOST_FTDC_FUS_FailedUpload: u8 = '2' as u8;
413pub const THOST_FTDC_FUS_SucceedLoad: u8 = '3' as u8;
414pub const THOST_FTDC_FUS_PartSucceedLoad: u8 = '4' as u8;
415pub const THOST_FTDC_FUS_FailedLoad: u8 = '5' as u8;
416pub const THOST_FTDC_TD_Out: u8 = '0' as u8;
417pub const THOST_FTDC_TD_In: u8 = '1' as u8;
418pub const THOST_FTDC_SC_NoSpecialRule: u8 = '0' as u8;
419pub const THOST_FTDC_SC_NoSpringFestival: u8 = '1' as u8;
420pub const THOST_FTDC_IPT_LastSettlement: u8 = '1' as u8;
421pub const THOST_FTDC_IPT_LaseClose: u8 = '2' as u8;
422pub const THOST_FTDC_PLP_Active: u8 = '1' as u8;
423pub const THOST_FTDC_PLP_NonActive: u8 = '2' as u8;
424pub const THOST_FTDC_PLP_Canceled: u8 = '3' as u8;
425pub const THOST_FTDC_DM_CashDeliv: u8 = '1' as u8;
426pub const THOST_FTDC_DM_CommodityDeliv: u8 = '2' as u8;
427pub const THOST_FTDC_FIOT_FundIO: u8 = '1' as u8;
428pub const THOST_FTDC_FIOT_Transfer: u8 = '2' as u8;
429pub const THOST_FTDC_FIOT_SwapCurrency: u8 = '3' as u8;
430pub const THOST_FTDC_FT_Deposite: u8 = '1' as u8;
431pub const THOST_FTDC_FT_ItemFund: u8 = '2' as u8;
432pub const THOST_FTDC_FT_Company: u8 = '3' as u8;
433pub const THOST_FTDC_FT_InnerTransfer: u8 = '4' as u8;
434pub const THOST_FTDC_FD_In: u8 = '1' as u8;
435pub const THOST_FTDC_FD_Out: u8 = '2' as u8;
436pub const THOST_FTDC_FS_Record: u8 = '1' as u8;
437pub const THOST_FTDC_FS_Check: u8 = '2' as u8;
438pub const THOST_FTDC_FS_Charge: u8 = '3' as u8;
439pub const THOST_FTDC_PS_None: u8 = '1' as u8;
440pub const THOST_FTDC_PS_Publishing: u8 = '2' as u8;
441pub const THOST_FTDC_PS_Published: u8 = '3' as u8;
442pub const THOST_FTDC_ES_NonActive: u8 = '1' as u8;
443pub const THOST_FTDC_ES_Startup: u8 = '2' as u8;
444pub const THOST_FTDC_ES_Initialize: u8 = '3' as u8;
445pub const THOST_FTDC_ES_Initialized: u8 = '4' as u8;
446pub const THOST_FTDC_ES_Close: u8 = '5' as u8;
447pub const THOST_FTDC_ES_Closed: u8 = '6' as u8;
448pub const THOST_FTDC_ES_Settlement: u8 = '7' as u8;
449pub const THOST_FTDC_STS_Initialize: u8 = '0' as u8;
450pub const THOST_FTDC_STS_Settlementing: u8 = '1' as u8;
451pub const THOST_FTDC_STS_Settlemented: u8 = '2' as u8;
452pub const THOST_FTDC_STS_Finished: u8 = '3' as u8;
453pub const THOST_FTDC_CT_Person: u8 = '0' as u8;
454pub const THOST_FTDC_CT_Company: u8 = '1' as u8;
455pub const THOST_FTDC_CT_Fund: u8 = '2' as u8;
456pub const THOST_FTDC_CT_SpecialOrgan: u8 = '3' as u8;
457pub const THOST_FTDC_CT_Asset: u8 = '4' as u8;
458pub const THOST_FTDC_BT_Trade: u8 = '0' as u8;
459pub const THOST_FTDC_BT_TradeSettle: u8 = '1' as u8;
460pub const THOST_FTDC_FAS_Low: u8 = '1' as u8;
461pub const THOST_FTDC_FAS_Normal: u8 = '2' as u8;
462pub const THOST_FTDC_FAS_Focus: u8 = '3' as u8;
463pub const THOST_FTDC_FAS_Risk: u8 = '4' as u8;
464pub const THOST_FTDC_FAS_ByTrade: u8 = '1' as u8;
465pub const THOST_FTDC_FAS_ByDeliv: u8 = '2' as u8;
466pub const THOST_FTDC_FAS_None: u8 = '3' as u8;
467pub const THOST_FTDC_FAS_FixFee: u8 = '4' as u8;
468pub const THOST_FTDC_PWDT_Trade: u8 = '1' as u8;
469pub const THOST_FTDC_PWDT_Account: u8 = '2' as u8;
470pub const THOST_FTDC_AG_All: u8 = '1' as u8;
471pub const THOST_FTDC_AG_OnlyLost: u8 = '2' as u8;
472pub const THOST_FTDC_AG_OnlyGain: u8 = '3' as u8;
473pub const THOST_FTDC_AG_None: u8 = '4' as u8;
474pub const THOST_FTDC_ICP_Include: u8 = '0' as u8;
475pub const THOST_FTDC_ICP_NotInclude: u8 = '2' as u8;
476pub const THOST_FTDC_AWT_Enable: u8 = '0' as u8;
477pub const THOST_FTDC_AWT_Disable: u8 = '2' as u8;
478pub const THOST_FTDC_AWT_NoHoldEnable: u8 = '3' as u8;
479pub const THOST_FTDC_FPWD_UnCheck: u8 = '0' as u8;
480pub const THOST_FTDC_FPWD_Check: u8 = '1' as u8;
481pub const THOST_FTDC_TT_BankToFuture: u8 = '0' as u8;
482pub const THOST_FTDC_TT_FutureToBank: u8 = '1' as u8;
483pub const THOST_FTDC_TVF_Invalid: u8 = '0' as u8;
484pub const THOST_FTDC_TVF_Valid: u8 = '1' as u8;
485pub const THOST_FTDC_TVF_Reverse: u8 = '2' as u8;
486pub const THOST_FTDC_RN_CD: u8 = '0' as u8;
487pub const THOST_FTDC_RN_ZT: u8 = '1' as u8;
488pub const THOST_FTDC_RN_QT: u8 = '2' as u8;
489pub const THOST_FTDC_SEX_None: u8 = '0' as u8;
490pub const THOST_FTDC_SEX_Man: u8 = '1' as u8;
491pub const THOST_FTDC_SEX_Woman: u8 = '2' as u8;
492pub const THOST_FTDC_UT_Investor: u8 = '0' as u8;
493pub const THOST_FTDC_UT_Operator: u8 = '1' as u8;
494pub const THOST_FTDC_UT_SuperUser: u8 = '2' as u8;
495pub const THOST_FTDC_RATETYPE_MarginRate: u8 = '2' as u8;
496pub const THOST_FTDC_NOTETYPE_TradeSettleBill: u8 = '1' as u8;
497pub const THOST_FTDC_NOTETYPE_TradeSettleMonth: u8 = '2' as u8;
498pub const THOST_FTDC_NOTETYPE_CallMarginNotes: u8 = '3' as u8;
499pub const THOST_FTDC_NOTETYPE_ForceCloseNotes: u8 = '4' as u8;
500pub const THOST_FTDC_NOTETYPE_TradeNotes: u8 = '5' as u8;
501pub const THOST_FTDC_NOTETYPE_DelivNotes: u8 = '6' as u8;
502pub const THOST_FTDC_SBS_Day: u8 = '1' as u8;
503pub const THOST_FTDC_SBS_Volume: u8 = '2' as u8;
504pub const THOST_FTDC_ST_Day: u8 = '0' as u8;
505pub const THOST_FTDC_ST_Month: u8 = '1' as u8;
506pub const THOST_FTDC_URT_Logon: u8 = '1' as u8;
507pub const THOST_FTDC_URT_Transfer: u8 = '2' as u8;
508pub const THOST_FTDC_URT_EMail: u8 = '3' as u8;
509pub const THOST_FTDC_URT_Fax: u8 = '4' as u8;
510pub const THOST_FTDC_URT_ConditionOrder: u8 = '5' as u8;
511pub const THOST_FTDC_MPT_PreSettlementPrice: u8 = '1' as u8;
512pub const THOST_FTDC_MPT_SettlementPrice: u8 = '2' as u8;
513pub const THOST_FTDC_MPT_AveragePrice: u8 = '3' as u8;
514pub const THOST_FTDC_MPT_OpenPrice: u8 = '4' as u8;
515pub const THOST_FTDC_BGS_None: u8 = '0' as u8;
516pub const THOST_FTDC_BGS_NoGenerated: u8 = '1' as u8;
517pub const THOST_FTDC_BGS_Generated: u8 = '2' as u8;
518pub const THOST_FTDC_AT_HandlePositionAlgo: u8 = '1' as u8;
519pub const THOST_FTDC_AT_FindMarginRateAlgo: u8 = '2' as u8;
520pub const THOST_FTDC_HPA_Base: u8 = '1' as u8;
521pub const THOST_FTDC_HPA_DCE: u8 = '2' as u8;
522pub const THOST_FTDC_HPA_CZCE: u8 = '3' as u8;
523pub const THOST_FTDC_FMRA_Base: u8 = '1' as u8;
524pub const THOST_FTDC_FMRA_DCE: u8 = '2' as u8;
525pub const THOST_FTDC_FMRA_CZCE: u8 = '3' as u8;
526pub const THOST_FTDC_HTAA_Base: u8 = '1' as u8;
527pub const THOST_FTDC_HTAA_DCE: u8 = '2' as u8;
528pub const THOST_FTDC_HTAA_CZCE: u8 = '3' as u8;
529pub const THOST_FTDC_PST_Order: u8 = '1' as u8;
530pub const THOST_FTDC_PST_Open: u8 = '2' as u8;
531pub const THOST_FTDC_PST_Fund: u8 = '3' as u8;
532pub const THOST_FTDC_PST_Settlement: u8 = '4' as u8;
533pub const THOST_FTDC_PST_Company: u8 = '5' as u8;
534pub const THOST_FTDC_PST_Corporation: u8 = '6' as u8;
535pub const THOST_FTDC_PST_LinkMan: u8 = '7' as u8;
536pub const THOST_FTDC_PST_Ledger: u8 = '8' as u8;
537pub const THOST_FTDC_PST_Trustee: u8 = '9' as u8;
538pub const THOST_FTDC_PST_TrusteeCorporation: u8 = 'A' as u8;
539pub const THOST_FTDC_PST_TrusteeOpen: u8 = 'B' as u8;
540pub const THOST_FTDC_PST_TrusteeContact: u8 = 'C' as u8;
541pub const THOST_FTDC_PST_ForeignerRefer: u8 = 'D' as u8;
542pub const THOST_FTDC_PST_CorporationRefer: u8 = 'E' as u8;
543pub const THOST_FTDC_QIR_All: u8 = '1' as u8;
544pub const THOST_FTDC_QIR_Group: u8 = '2' as u8;
545pub const THOST_FTDC_QIR_Single: u8 = '3' as u8;
546pub const THOST_FTDC_IRS_Normal: u8 = '1' as u8;
547pub const THOST_FTDC_IRS_Warn: u8 = '2' as u8;
548pub const THOST_FTDC_IRS_Call: u8 = '3' as u8;
549pub const THOST_FTDC_IRS_Force: u8 = '4' as u8;
550pub const THOST_FTDC_IRS_Exception: u8 = '5' as u8;
551pub const THOST_FTDC_UET_Login: u8 = '1' as u8;
552pub const THOST_FTDC_UET_Logout: u8 = '2' as u8;
553pub const THOST_FTDC_UET_Trading: u8 = '3' as u8;
554pub const THOST_FTDC_UET_TradingError: u8 = '4' as u8;
555pub const THOST_FTDC_UET_UpdatePassword: u8 = '5' as u8;
556pub const THOST_FTDC_UET_Authenticate: u8 = '6' as u8;
557pub const THOST_FTDC_UET_SubmitSysInfo: u8 = '7' as u8;
558pub const THOST_FTDC_UET_Transfer: u8 = '8' as u8;
559pub const THOST_FTDC_UET_Other: u8 = '9' as u8;
560pub const THOST_FTDC_UET_UpdateTradingAccountPassword: u8 = 'a' as u8;
561pub const THOST_FTDC_ICS_Close: u8 = '0' as u8;
562pub const THOST_FTDC_ICS_CloseToday: u8 = '1' as u8;
563pub const THOST_FTDC_SM_Non: u8 = '0' as u8;
564pub const THOST_FTDC_SM_Instrument: u8 = '1' as u8;
565pub const THOST_FTDC_SM_Product: u8 = '2' as u8;
566pub const THOST_FTDC_SM_Investor: u8 = '3' as u8;
567pub const THOST_FTDC_PAOS_NotSend: u8 = '1' as u8;
568pub const THOST_FTDC_PAOS_Send: u8 = '2' as u8;
569pub const THOST_FTDC_PAOS_Deleted: u8 = '3' as u8;
570pub const THOST_FTDC_VDS_Dealing: u8 = '1' as u8;
571pub const THOST_FTDC_VDS_DeaclSucceed: u8 = '2' as u8;
572pub const THOST_FTDC_ORGS_Standard: u8 = '0' as u8;
573pub const THOST_FTDC_ORGS_ESunny: u8 = '1' as u8;
574pub const THOST_FTDC_ORGS_KingStarV6: u8 = '2' as u8;
575pub const THOST_FTDC_VTS_NaturalDeal: u8 = '0' as u8;
576pub const THOST_FTDC_VTS_SucceedEnd: u8 = '1' as u8;
577pub const THOST_FTDC_VTS_FailedEND: u8 = '2' as u8;
578pub const THOST_FTDC_VTS_Exception: u8 = '3' as u8;
579pub const THOST_FTDC_VTS_ManualDeal: u8 = '4' as u8;
580pub const THOST_FTDC_VTS_MesException: u8 = '5' as u8;
581pub const THOST_FTDC_VTS_SysException: u8 = '6' as u8;
582pub const THOST_FTDC_VBAT_BankBook: u8 = '1' as u8;
583pub const THOST_FTDC_VBAT_BankCard: u8 = '2' as u8;
584pub const THOST_FTDC_VBAT_CreditCard: u8 = '3' as u8;
585pub const THOST_FTDC_VMS_Natural: u8 = '0' as u8;
586pub const THOST_FTDC_VMS_Canceled: u8 = '9' as u8;
587pub const THOST_FTDC_VAA_NoAvailAbility: u8 = '0' as u8;
588pub const THOST_FTDC_VAA_AvailAbility: u8 = '1' as u8;
589pub const THOST_FTDC_VAA_Repeal: u8 = '2' as u8;
590pub const THOST_FTDC_GEN_Program: u8 = '0' as u8;
591pub const THOST_FTDC_GEN_HandWork: u8 = '1' as u8;
592pub const THOST_FTDC_CFMMCKK_REQUEST: u8 = 'R' as u8;
593pub const THOST_FTDC_CFMMCKK_AUTO: u8 = 'A' as u8;
594pub const THOST_FTDC_CFMMCKK_MANUAL: u8 = 'M' as u8;
595pub const THOST_FTDC_CFT_IDCard: u8 = '0' as u8;
596pub const THOST_FTDC_CFT_Passport: u8 = '1' as u8;
597pub const THOST_FTDC_CFT_OfficerIDCard: u8 = '2' as u8;
598pub const THOST_FTDC_CFT_SoldierIDCard: u8 = '3' as u8;
599pub const THOST_FTDC_CFT_HomeComingCard: u8 = '4' as u8;
600pub const THOST_FTDC_CFT_HouseholdRegister: u8 = '5' as u8;
601pub const THOST_FTDC_CFT_LicenseNo: u8 = '6' as u8;
602pub const THOST_FTDC_CFT_InstitutionCodeCard: u8 = '7' as u8;
603pub const THOST_FTDC_CFT_TempLicenseNo: u8 = '8' as u8;
604pub const THOST_FTDC_CFT_NoEnterpriseLicenseNo: u8 = '9' as u8;
605pub const THOST_FTDC_CFT_OtherCard: u8 = 'x' as u8;
606pub const THOST_FTDC_CFT_SuperDepAgree: u8 = 'a' as u8;
607pub const THOST_FTDC_FBC_Others: u8 = '0' as u8;
608pub const THOST_FTDC_FBC_TransferDetails: u8 = '1' as u8;
609pub const THOST_FTDC_FBC_CustAccStatus: u8 = '2' as u8;
610pub const THOST_FTDC_FBC_AccountTradeDetails: u8 = '3' as u8;
611pub const THOST_FTDC_FBC_FutureAccountChangeInfoDetails: u8 = '4' as u8;
612pub const THOST_FTDC_FBC_CustMoneyDetail: u8 = '5' as u8;
613pub const THOST_FTDC_FBC_CustCancelAccountInfo: u8 = '6' as u8;
614pub const THOST_FTDC_FBC_CustMoneyResult: u8 = '7' as u8;
615pub const THOST_FTDC_FBC_OthersExceptionResult: u8 = '8' as u8;
616pub const THOST_FTDC_FBC_CustInterestNetMoneyDetails: u8 = '9' as u8;
617pub const THOST_FTDC_FBC_CustMoneySendAndReceiveDetails: u8 = 'a' as u8;
618pub const THOST_FTDC_FBC_CorporationMoneyTotal: u8 = 'b' as u8;
619pub const THOST_FTDC_FBC_MainbodyMoneyTotal: u8 = 'c' as u8;
620pub const THOST_FTDC_FBC_MainPartMonitorData: u8 = 'd' as u8;
621pub const THOST_FTDC_FBC_PreparationMoney: u8 = 'e' as u8;
622pub const THOST_FTDC_FBC_BankMoneyMonitorData: u8 = 'f' as u8;
623pub const THOST_FTDC_CEC_Exchange: u8 = '1' as u8;
624pub const THOST_FTDC_CEC_Cash: u8 = '2' as u8;
625pub const THOST_FTDC_YNI_Yes: u8 = '0' as u8;
626pub const THOST_FTDC_YNI_No: u8 = '1' as u8;
627pub const THOST_FTDC_BLT_CurrentMoney: u8 = '0' as u8;
628pub const THOST_FTDC_BLT_UsableMoney: u8 = '1' as u8;
629pub const THOST_FTDC_BLT_FetchableMoney: u8 = '2' as u8;
630pub const THOST_FTDC_BLT_FreezeMoney: u8 = '3' as u8;
631pub const THOST_FTDC_GD_Unknown: u8 = '0' as u8;
632pub const THOST_FTDC_GD_Male: u8 = '1' as u8;
633pub const THOST_FTDC_GD_Female: u8 = '2' as u8;
634pub const THOST_FTDC_FPF_BEN: u8 = '0' as u8;
635pub const THOST_FTDC_FPF_OUR: u8 = '1' as u8;
636pub const THOST_FTDC_FPF_SHA: u8 = '2' as u8;
637pub const THOST_FTDC_PWKT_ExchangeKey: u8 = '0' as u8;
638pub const THOST_FTDC_PWKT_PassWordKey: u8 = '1' as u8;
639pub const THOST_FTDC_PWKT_MACKey: u8 = '2' as u8;
640pub const THOST_FTDC_PWKT_MessageKey: u8 = '3' as u8;
641pub const THOST_FTDC_PWT_Query: u8 = '0' as u8;
642pub const THOST_FTDC_PWT_Fetch: u8 = '1' as u8;
643pub const THOST_FTDC_PWT_Transfer: u8 = '2' as u8;
644pub const THOST_FTDC_PWT_Trade: u8 = '3' as u8;
645pub const THOST_FTDC_EM_NoEncry: u8 = '0' as u8;
646pub const THOST_FTDC_EM_DES: u8 = '1' as u8;
647pub const THOST_FTDC_EM_3DES: u8 = '2' as u8;
648pub const THOST_FTDC_BRF_BankNotNeedRepeal: u8 = '0' as u8;
649pub const THOST_FTDC_BRF_BankWaitingRepeal: u8 = '1' as u8;
650pub const THOST_FTDC_BRF_BankBeenRepealed: u8 = '2' as u8;
651pub const THOST_FTDC_BRORF_BrokerNotNeedRepeal: u8 = '0' as u8;
652pub const THOST_FTDC_BRORF_BrokerWaitingRepeal: u8 = '1' as u8;
653pub const THOST_FTDC_BRORF_BrokerBeenRepealed: u8 = '2' as u8;
654pub const THOST_FTDC_TS_Bank: u8 = '0' as u8;
655pub const THOST_FTDC_TS_Future: u8 = '1' as u8;
656pub const THOST_FTDC_TS_Store: u8 = '2' as u8;
657pub const THOST_FTDC_LF_Yes: u8 = '0' as u8;
658pub const THOST_FTDC_LF_No: u8 = '1' as u8;
659pub const THOST_FTDC_BAS_Normal: u8 = '0' as u8;
660pub const THOST_FTDC_BAS_Freeze: u8 = '1' as u8;
661pub const THOST_FTDC_BAS_ReportLoss: u8 = '2' as u8;
662pub const THOST_FTDC_MAS_Normal: u8 = '0' as u8;
663pub const THOST_FTDC_MAS_Cancel: u8 = '1' as u8;
664pub const THOST_FTDC_MSS_Point: u8 = '0' as u8;
665pub const THOST_FTDC_MSS_PrePoint: u8 = '1' as u8;
666pub const THOST_FTDC_MSS_CancelPoint: u8 = '2' as u8;
667pub const THOST_FTDC_SYT_FutureBankTransfer: u8 = '0' as u8;
668pub const THOST_FTDC_SYT_StockBankTransfer: u8 = '1' as u8;
669pub const THOST_FTDC_SYT_TheThirdPartStore: u8 = '2' as u8;
670pub const THOST_FTDC_TEF_NormalProcessing: u8 = '0' as u8;
671pub const THOST_FTDC_TEF_Success: u8 = '1' as u8;
672pub const THOST_FTDC_TEF_Failed: u8 = '2' as u8;
673pub const THOST_FTDC_TEF_Abnormal: u8 = '3' as u8;
674pub const THOST_FTDC_TEF_ManualProcessedForException: u8 = '4' as u8;
675pub const THOST_FTDC_TEF_CommuFailedNeedManualProcess: u8 = '5' as u8;
676pub const THOST_FTDC_TEF_SysErrorNeedManualProcess: u8 = '6' as u8;
677pub const THOST_FTDC_PSS_NotProcess: u8 = '0' as u8;
678pub const THOST_FTDC_PSS_StartProcess: u8 = '1' as u8;
679pub const THOST_FTDC_PSS_Finished: u8 = '2' as u8;
680pub const THOST_FTDC_CUSTT_Person: u8 = '0' as u8;
681pub const THOST_FTDC_CUSTT_Institution: u8 = '1' as u8;
682pub const THOST_FTDC_FBTTD_FromBankToFuture: u8 = '1' as u8;
683pub const THOST_FTDC_FBTTD_FromFutureToBank: u8 = '2' as u8;
684pub const THOST_FTDC_OOD_Open: u8 = '1' as u8;
685pub const THOST_FTDC_OOD_Destroy: u8 = '0' as u8;
686pub const THOST_FTDC_AVAF_Invalid: u8 = '0' as u8;
687pub const THOST_FTDC_AVAF_Valid: u8 = '1' as u8;
688pub const THOST_FTDC_AVAF_Repeal: u8 = '2' as u8;
689pub const THOST_FTDC_OT_Bank: u8 = '1' as u8;
690pub const THOST_FTDC_OT_Future: u8 = '2' as u8;
691pub const THOST_FTDC_OT_PlateForm: u8 = '9' as u8;
692pub const THOST_FTDC_OL_HeadQuarters: u8 = '1' as u8;
693pub const THOST_FTDC_OL_Branch: u8 = '2' as u8;
694pub const THOST_FTDC_PID_FutureProtocal: u8 = '0' as u8;
695pub const THOST_FTDC_PID_ICBCProtocal: u8 = '1' as u8;
696pub const THOST_FTDC_PID_ABCProtocal: u8 = '2' as u8;
697pub const THOST_FTDC_PID_CBCProtocal: u8 = '3' as u8;
698pub const THOST_FTDC_PID_CCBProtocal: u8 = '4' as u8;
699pub const THOST_FTDC_PID_BOCOMProtocal: u8 = '5' as u8;
700pub const THOST_FTDC_PID_FBTPlateFormProtocal: u8 = 'X' as u8;
701pub const THOST_FTDC_CM_ShortConnect: u8 = '0' as u8;
702pub const THOST_FTDC_CM_LongConnect: u8 = '1' as u8;
703pub const THOST_FTDC_SRM_ASync: u8 = '0' as u8;
704pub const THOST_FTDC_SRM_Sync: u8 = '1' as u8;
705pub const THOST_FTDC_BAT_BankBook: u8 = '1' as u8;
706pub const THOST_FTDC_BAT_SavingCard: u8 = '2' as u8;
707pub const THOST_FTDC_BAT_CreditCard: u8 = '3' as u8;
708pub const THOST_FTDC_FAT_BankBook: u8 = '1' as u8;
709pub const THOST_FTDC_FAT_SavingCard: u8 = '2' as u8;
710pub const THOST_FTDC_FAT_CreditCard: u8 = '3' as u8;
711pub const THOST_FTDC_OS_Ready: u8 = '0' as u8;
712pub const THOST_FTDC_OS_CheckIn: u8 = '1' as u8;
713pub const THOST_FTDC_OS_CheckOut: u8 = '2' as u8;
714pub const THOST_FTDC_OS_CheckFileArrived: u8 = '3' as u8;
715pub const THOST_FTDC_OS_CheckDetail: u8 = '4' as u8;
716pub const THOST_FTDC_OS_DayEndClean: u8 = '5' as u8;
717pub const THOST_FTDC_OS_Invalid: u8 = '9' as u8;
718pub const THOST_FTDC_CCBFM_ByAmount: u8 = '1' as u8;
719pub const THOST_FTDC_CCBFM_ByMonth: u8 = '2' as u8;
720pub const THOST_FTDC_CAPIT_Client: u8 = '1' as u8;
721pub const THOST_FTDC_CAPIT_Server: u8 = '2' as u8;
722pub const THOST_FTDC_CAPIT_UserApi: u8 = '3' as u8;
723pub const THOST_FTDC_LS_Connected: u8 = '1' as u8;
724pub const THOST_FTDC_LS_Disconnected: u8 = '2' as u8;
725pub const THOST_FTDC_BPWDF_NoCheck: u8 = '0' as u8;
726pub const THOST_FTDC_BPWDF_BlankCheck: u8 = '1' as u8;
727pub const THOST_FTDC_BPWDF_EncryptCheck: u8 = '2' as u8;
728pub const THOST_FTDC_SAT_AccountID: u8 = '1' as u8;
729pub const THOST_FTDC_SAT_CardID: u8 = '2' as u8;
730pub const THOST_FTDC_SAT_SHStockholderID: u8 = '3' as u8;
731pub const THOST_FTDC_SAT_SZStockholderID: u8 = '4' as u8;
732pub const THOST_FTDC_TRFS_Normal: u8 = '0' as u8;
733pub const THOST_FTDC_TRFS_Repealed: u8 = '1' as u8;
734pub const THOST_FTDC_SPTYPE_Broker: u8 = '0' as u8;
735pub const THOST_FTDC_SPTYPE_Bank: u8 = '1' as u8;
736pub const THOST_FTDC_REQRSP_Request: u8 = '0' as u8;
737pub const THOST_FTDC_REQRSP_Response: u8 = '1' as u8;
738pub const THOST_FTDC_FBTUET_SignIn: u8 = '0' as u8;
739pub const THOST_FTDC_FBTUET_FromBankToFuture: u8 = '1' as u8;
740pub const THOST_FTDC_FBTUET_FromFutureToBank: u8 = '2' as u8;
741pub const THOST_FTDC_FBTUET_OpenAccount: u8 = '3' as u8;
742pub const THOST_FTDC_FBTUET_CancelAccount: u8 = '4' as u8;
743pub const THOST_FTDC_FBTUET_ChangeAccount: u8 = '5' as u8;
744pub const THOST_FTDC_FBTUET_RepealFromBankToFuture: u8 = '6' as u8;
745pub const THOST_FTDC_FBTUET_RepealFromFutureToBank: u8 = '7' as u8;
746pub const THOST_FTDC_FBTUET_QueryBankAccount: u8 = '8' as u8;
747pub const THOST_FTDC_FBTUET_QueryFutureAccount: u8 = '9' as u8;
748pub const THOST_FTDC_FBTUET_SignOut: u8 = 'A' as u8;
749pub const THOST_FTDC_FBTUET_SyncKey: u8 = 'B' as u8;
750pub const THOST_FTDC_FBTUET_ReserveOpenAccount: u8 = 'C' as u8;
751pub const THOST_FTDC_FBTUET_CancelReserveOpenAccount: u8 = 'D' as u8;
752pub const THOST_FTDC_FBTUET_ReserveOpenAccountConfirm: u8 = 'E' as u8;
753pub const THOST_FTDC_FBTUET_Other: u8 = 'Z' as u8;
754pub const THOST_FTDC_DBOP_Insert: u8 = '0' as u8;
755pub const THOST_FTDC_DBOP_Update: u8 = '1' as u8;
756pub const THOST_FTDC_DBOP_Delete: u8 = '2' as u8;
757pub const THOST_FTDC_SYNF_Yes: u8 = '0' as u8;
758pub const THOST_FTDC_SYNF_No: u8 = '1' as u8;
759pub const THOST_FTDC_SYNT_OneOffSync: u8 = '0' as u8;
760pub const THOST_FTDC_SYNT_TimerSync: u8 = '1' as u8;
761pub const THOST_FTDC_SYNT_TimerFullSync: u8 = '2' as u8;
762pub const THOST_FTDC_FBEDIR_Settlement: u8 = '0' as u8;
763pub const THOST_FTDC_FBEDIR_Sale: u8 = '1' as u8;
764pub const THOST_FTDC_FBERES_Success: u8 = '0' as u8;
765pub const THOST_FTDC_FBERES_InsufficientBalance: u8 = '1' as u8;
766pub const THOST_FTDC_FBERES_UnknownTrading: u8 = '8' as u8;
767pub const THOST_FTDC_FBERES_Fail: u8 = 'x' as u8;
768pub const THOST_FTDC_FBEES_Normal: u8 = '0' as u8;
769pub const THOST_FTDC_FBEES_ReExchange: u8 = '1' as u8;
770pub const THOST_FTDC_FBEFG_DataPackage: u8 = '0' as u8;
771pub const THOST_FTDC_FBEFG_File: u8 = '1' as u8;
772pub const THOST_FTDC_FBEAT_NotTrade: u8 = '0' as u8;
773pub const THOST_FTDC_FBEAT_Trade: u8 = '1' as u8;
774pub const THOST_FTDC_FBEUET_SignIn: u8 = '0' as u8;
775pub const THOST_FTDC_FBEUET_Exchange: u8 = '1' as u8;
776pub const THOST_FTDC_FBEUET_ReExchange: u8 = '2' as u8;
777pub const THOST_FTDC_FBEUET_QueryBankAccount: u8 = '3' as u8;
778pub const THOST_FTDC_FBEUET_QueryExchDetial: u8 = '4' as u8;
779pub const THOST_FTDC_FBEUET_QueryExchSummary: u8 = '5' as u8;
780pub const THOST_FTDC_FBEUET_QueryExchRate: u8 = '6' as u8;
781pub const THOST_FTDC_FBEUET_CheckBankAccount: u8 = '7' as u8;
782pub const THOST_FTDC_FBEUET_SignOut: u8 = '8' as u8;
783pub const THOST_FTDC_FBEUET_Other: u8 = 'Z' as u8;
784pub const THOST_FTDC_FBERF_UnProcessed: u8 = '0' as u8;
785pub const THOST_FTDC_FBERF_WaitSend: u8 = '1' as u8;
786pub const THOST_FTDC_FBERF_SendSuccess: u8 = '2' as u8;
787pub const THOST_FTDC_FBERF_SendFailed: u8 = '3' as u8;
788pub const THOST_FTDC_FBERF_WaitReSend: u8 = '4' as u8;
789pub const THOST_FTDC_NC_NOERROR: u8 = '0' as u8;
790pub const THOST_FTDC_NC_Warn: u8 = '1' as u8;
791pub const THOST_FTDC_NC_Call: u8 = '2' as u8;
792pub const THOST_FTDC_NC_Force: u8 = '3' as u8;
793pub const THOST_FTDC_NC_CHUANCANG: u8 = '4' as u8;
794pub const THOST_FTDC_NC_Exception: u8 = '5' as u8;
795pub const THOST_FTDC_FCT_Manual: u8 = '0' as u8;
796pub const THOST_FTDC_FCT_Single: u8 = '1' as u8;
797pub const THOST_FTDC_FCT_Group: u8 = '2' as u8;
798pub const THOST_FTDC_RNM_System: u8 = '0' as u8;
799pub const THOST_FTDC_RNM_SMS: u8 = '1' as u8;
800pub const THOST_FTDC_RNM_EMail: u8 = '2' as u8;
801pub const THOST_FTDC_RNM_Manual: u8 = '3' as u8;
802pub const THOST_FTDC_RNS_NotGen: u8 = '0' as u8;
803pub const THOST_FTDC_RNS_Generated: u8 = '1' as u8;
804pub const THOST_FTDC_RNS_SendError: u8 = '2' as u8;
805pub const THOST_FTDC_RNS_SendOk: u8 = '3' as u8;
806pub const THOST_FTDC_RNS_Received: u8 = '4' as u8;
807pub const THOST_FTDC_RNS_Confirmed: u8 = '5' as u8;
808pub const THOST_FTDC_RUE_ExportData: u8 = '0' as u8;
809pub const THOST_FTDC_COST_LastPriceAsc: u8 = '0' as u8;
810pub const THOST_FTDC_COST_LastPriceDesc: u8 = '1' as u8;
811pub const THOST_FTDC_COST_AskPriceAsc: u8 = '2' as u8;
812pub const THOST_FTDC_COST_AskPriceDesc: u8 = '3' as u8;
813pub const THOST_FTDC_COST_BidPriceAsc: u8 = '4' as u8;
814pub const THOST_FTDC_COST_BidPriceDesc: u8 = '5' as u8;
815pub const THOST_FTDC_UOAST_NoSend: u8 = '0' as u8;
816pub const THOST_FTDC_UOAST_Sended: u8 = '1' as u8;
817pub const THOST_FTDC_UOAST_Generated: u8 = '2' as u8;
818pub const THOST_FTDC_UOAST_SendFail: u8 = '3' as u8;
819pub const THOST_FTDC_UOAST_Success: u8 = '4' as u8;
820pub const THOST_FTDC_UOAST_Fail: u8 = '5' as u8;
821pub const THOST_FTDC_UOAST_Cancel: u8 = '6' as u8;
822pub const THOST_FTDC_UOACS_NoApply: u8 = '1' as u8;
823pub const THOST_FTDC_UOACS_Submited: u8 = '2' as u8;
824pub const THOST_FTDC_UOACS_Sended: u8 = '3' as u8;
825pub const THOST_FTDC_UOACS_Success: u8 = '4' as u8;
826pub const THOST_FTDC_UOACS_Refuse: u8 = '5' as u8;
827pub const THOST_FTDC_UOACS_Cancel: u8 = '6' as u8;
828pub const THOST_FTDC_QT_Radio: u8 = '1' as u8;
829pub const THOST_FTDC_QT_Option: u8 = '2' as u8;
830pub const THOST_FTDC_QT_Blank: u8 = '3' as u8;
831pub const THOST_FTDC_BT_Request: u8 = '1' as u8;
832pub const THOST_FTDC_BT_Response: u8 = '2' as u8;
833pub const THOST_FTDC_BT_Notice: u8 = '3' as u8;
834pub const THOST_FTDC_CRC_Success: u8 = '0' as u8;
835pub const THOST_FTDC_CRC_Working: u8 = '1' as u8;
836pub const THOST_FTDC_CRC_InfoFail: u8 = '2' as u8;
837pub const THOST_FTDC_CRC_IDCardFail: u8 = '3' as u8;
838pub const THOST_FTDC_CRC_OtherFail: u8 = '4' as u8;
839pub const THOST_FTDC_CfMMCCT_All: u8 = '0' as u8;
840pub const THOST_FTDC_CfMMCCT_Person: u8 = '1' as u8;
841pub const THOST_FTDC_CfMMCCT_Company: u8 = '2' as u8;
842pub const THOST_FTDC_CfMMCCT_Other: u8 = '3' as u8;
843pub const THOST_FTDC_CfMMCCT_SpecialOrgan: u8 = '4' as u8;
844pub const THOST_FTDC_CfMMCCT_Asset: u8 = '5' as u8;
845pub const THOST_FTDC_EIDT_SHFE: u8 = 'S' as u8;
846pub const THOST_FTDC_EIDT_CZCE: u8 = 'Z' as u8;
847pub const THOST_FTDC_EIDT_DCE: u8 = 'D' as u8;
848pub const THOST_FTDC_EIDT_CFFEX: u8 = 'J' as u8;
849pub const THOST_FTDC_EIDT_INE: u8 = 'N' as u8;
850pub const THOST_FTDC_ECIDT_Hedge: u8 = '1' as u8;
851pub const THOST_FTDC_ECIDT_Arbitrage: u8 = '2' as u8;
852pub const THOST_FTDC_ECIDT_Speculation: u8 = '3' as u8;
853pub const THOST_FTDC_UF_NoUpdate: u8 = '0' as u8;
854pub const THOST_FTDC_UF_Success: u8 = '1' as u8;
855pub const THOST_FTDC_UF_Fail: u8 = '2' as u8;
856pub const THOST_FTDC_UF_TCSuccess: u8 = '3' as u8;
857pub const THOST_FTDC_UF_TCFail: u8 = '4' as u8;
858pub const THOST_FTDC_UF_Cancel: u8 = '5' as u8;
859pub const THOST_FTDC_AOID_OpenInvestor: u8 = '1' as u8;
860pub const THOST_FTDC_AOID_ModifyIDCard: u8 = '2' as u8;
861pub const THOST_FTDC_AOID_ModifyNoIDCard: u8 = '3' as u8;
862pub const THOST_FTDC_AOID_ApplyTradingCode: u8 = '4' as u8;
863pub const THOST_FTDC_AOID_CancelTradingCode: u8 = '5' as u8;
864pub const THOST_FTDC_AOID_CancelInvestor: u8 = '6' as u8;
865pub const THOST_FTDC_AOID_FreezeAccount: u8 = '8' as u8;
866pub const THOST_FTDC_AOID_ActiveFreezeAccount: u8 = '9' as u8;
867pub const THOST_FTDC_ASID_NoComplete: u8 = '1' as u8;
868pub const THOST_FTDC_ASID_Submited: u8 = '2' as u8;
869pub const THOST_FTDC_ASID_Checked: u8 = '3' as u8;
870pub const THOST_FTDC_ASID_Refused: u8 = '4' as u8;
871pub const THOST_FTDC_ASID_Deleted: u8 = '5' as u8;
872pub const THOST_FTDC_UOASM_ByAPI: u8 = '1' as u8;
873pub const THOST_FTDC_UOASM_ByFile: u8 = '2' as u8;
874pub const THOST_FTDC_EvM_ADD: u8 = '1' as u8;
875pub const THOST_FTDC_EvM_UPDATE: u8 = '2' as u8;
876pub const THOST_FTDC_EvM_DELETE: u8 = '3' as u8;
877pub const THOST_FTDC_EvM_CHECK: u8 = '4' as u8;
878pub const THOST_FTDC_EvM_COPY: u8 = '5' as u8;
879pub const THOST_FTDC_EvM_CANCEL: u8 = '6' as u8;
880pub const THOST_FTDC_EvM_Reverse: u8 = '7' as u8;
881pub const THOST_FTDC_UOAA_ASR: u8 = '1' as u8;
882pub const THOST_FTDC_UOAA_ASNR: u8 = '2' as u8;
883pub const THOST_FTDC_UOAA_NSAR: u8 = '3' as u8;
884pub const THOST_FTDC_UOAA_NSR: u8 = '4' as u8;
885pub const THOST_FTDC_EvM_InvestorGroupFlow: u8 = '1' as u8;
886pub const THOST_FTDC_EvM_InvestorRate: u8 = '2' as u8;
887pub const THOST_FTDC_EvM_InvestorCommRateModel: u8 = '3' as u8;
888pub const THOST_FTDC_CL_Zero: u8 = '0' as u8;
889pub const THOST_FTDC_CL_One: u8 = '1' as u8;
890pub const THOST_FTDC_CL_Two: u8 = '2' as u8;
891pub const THOST_FTDC_CHS_Init: u8 = '0' as u8;
892pub const THOST_FTDC_CHS_Checking: u8 = '1' as u8;
893pub const THOST_FTDC_CHS_Checked: u8 = '2' as u8;
894pub const THOST_FTDC_CHS_Refuse: u8 = '3' as u8;
895pub const THOST_FTDC_CHS_Cancel: u8 = '4' as u8;
896pub const THOST_FTDC_CHU_Unused: u8 = '0' as u8;
897pub const THOST_FTDC_CHU_Used: u8 = '1' as u8;
898pub const THOST_FTDC_CHU_Fail: u8 = '2' as u8;
899pub const THOST_FTDC_BAO_ByAccProperty: u8 = '0' as u8;
900pub const THOST_FTDC_BAO_ByFBTransfer: u8 = '1' as u8;
901pub const THOST_FTDC_MBTS_ByInstrument: u8 = '0' as u8;
902pub const THOST_FTDC_MBTS_ByDayInsPrc: u8 = '1' as u8;
903pub const THOST_FTDC_MBTS_ByDayIns: u8 = '2' as u8;
904pub const THOST_FTDC_OTP_NONE: u8 = '0' as u8;
905pub const THOST_FTDC_OTP_TOTP: u8 = '1' as u8;
906pub const THOST_FTDC_OTPS_Unused: u8 = '0' as u8;
907pub const THOST_FTDC_OTPS_Used: u8 = '1' as u8;
908pub const THOST_FTDC_OTPS_Disuse: u8 = '2' as u8;
909pub const THOST_FTDC_BUT_Investor: u8 = '1' as u8;
910pub const THOST_FTDC_BUT_BrokerUser: u8 = '2' as u8;
911pub const THOST_FTDC_FUTT_Commodity: u8 = '1' as u8;
912pub const THOST_FTDC_FUTT_Financial: u8 = '2' as u8;
913pub const THOST_FTDC_FET_Restriction: u8 = '0' as u8;
914pub const THOST_FTDC_FET_TodayRestriction: u8 = '1' as u8;
915pub const THOST_FTDC_FET_Transfer: u8 = '2' as u8;
916pub const THOST_FTDC_FET_Credit: u8 = '3' as u8;
917pub const THOST_FTDC_FET_InvestorWithdrawAlm: u8 = '4' as u8;
918pub const THOST_FTDC_FET_BankRestriction: u8 = '5' as u8;
919pub const THOST_FTDC_FET_Accountregister: u8 = '6' as u8;
920pub const THOST_FTDC_FET_ExchangeFundIO: u8 = '7' as u8;
921pub const THOST_FTDC_FET_InvestorFundIO: u8 = '8' as u8;
922pub const THOST_FTDC_AST_FBTransfer: u8 = '0' as u8;
923pub const THOST_FTDC_AST_ManualEntry: u8 = '1' as u8;
924pub const THOST_FTDC_CST_UnifyAccount: u8 = '0' as u8;
925pub const THOST_FTDC_CST_ManualEntry: u8 = '1' as u8;
926pub const THOST_FTDC_UR_All: u8 = '0' as u8;
927pub const THOST_FTDC_UR_Single: u8 = '1' as u8;
928pub const THOST_FTDC_BG_Investor: u8 = '2' as u8;
929pub const THOST_FTDC_BG_Group: u8 = '1' as u8;
930pub const THOST_FTDC_TSSM_Instrument: u8 = '1' as u8;
931pub const THOST_FTDC_TSSM_Product: u8 = '2' as u8;
932pub const THOST_FTDC_TSSM_Exchange: u8 = '3' as u8;
933pub const THOST_FTDC_ESM_Relative: u8 = '1' as u8;
934pub const THOST_FTDC_ESM_Typical: u8 = '2' as u8;
935pub const THOST_FTDC_RIR_All: u8 = '1' as u8;
936pub const THOST_FTDC_RIR_Model: u8 = '2' as u8;
937pub const THOST_FTDC_RIR_Single: u8 = '3' as u8;
938pub const THOST_FTDC_SDS_Initialize: u8 = '0' as u8;
939pub const THOST_FTDC_SDS_Settlementing: u8 = '1' as u8;
940pub const THOST_FTDC_SDS_Settlemented: u8 = '2' as u8;
941pub const THOST_FTDC_TSRC_NORMAL: u8 = '0' as u8;
942pub const THOST_FTDC_TSRC_QUERY: u8 = '1' as u8;
943pub const THOST_FTDC_FSM_Product: u8 = '1' as u8;
944pub const THOST_FTDC_FSM_Exchange: u8 = '2' as u8;
945pub const THOST_FTDC_FSM_All: u8 = '3' as u8;
946pub const THOST_FTDC_BIR_Property: u8 = '1' as u8;
947pub const THOST_FTDC_BIR_All: u8 = '2' as u8;
948pub const THOST_FTDC_PIR_All: u8 = '1' as u8;
949pub const THOST_FTDC_PIR_Property: u8 = '2' as u8;
950pub const THOST_FTDC_PIR_Single: u8 = '3' as u8;
951pub const THOST_FTDC_FIS_NoCreate: u8 = '0' as u8;
952pub const THOST_FTDC_FIS_Created: u8 = '1' as u8;
953pub const THOST_FTDC_FIS_Failed: u8 = '2' as u8;
954pub const THOST_FTDC_FGS_FileTransmit: u8 = '0' as u8;
955pub const THOST_FTDC_FGS_FileGen: u8 = '1' as u8;
956pub const THOST_FTDC_SoM_Add: u8 = '1' as u8;
957pub const THOST_FTDC_SoM_Update: u8 = '2' as u8;
958pub const THOST_FTDC_SoM_Delete: u8 = '3' as u8;
959pub const THOST_FTDC_SoM_Copy: u8 = '4' as u8;
960pub const THOST_FTDC_SoM_AcTive: u8 = '5' as u8;
961pub const THOST_FTDC_SoM_CanCel: u8 = '6' as u8;
962pub const THOST_FTDC_SoM_ReSet: u8 = '7' as u8;
963pub const THOST_FTDC_SoT_UpdatePassword: u8 = '0' as u8;
964pub const THOST_FTDC_SoT_UserDepartment: u8 = '1' as u8;
965pub const THOST_FTDC_SoT_RoleManager: u8 = '2' as u8;
966pub const THOST_FTDC_SoT_RoleFunction: u8 = '3' as u8;
967pub const THOST_FTDC_SoT_BaseParam: u8 = '4' as u8;
968pub const THOST_FTDC_SoT_SetUserID: u8 = '5' as u8;
969pub const THOST_FTDC_SoT_SetUserRole: u8 = '6' as u8;
970pub const THOST_FTDC_SoT_UserIpRestriction: u8 = '7' as u8;
971pub const THOST_FTDC_SoT_DepartmentManager: u8 = '8' as u8;
972pub const THOST_FTDC_SoT_DepartmentCopy: u8 = '9' as u8;
973pub const THOST_FTDC_SoT_Tradingcode: u8 = 'A' as u8;
974pub const THOST_FTDC_SoT_InvestorStatus: u8 = 'B' as u8;
975pub const THOST_FTDC_SoT_InvestorAuthority: u8 = 'C' as u8;
976pub const THOST_FTDC_SoT_PropertySet: u8 = 'D' as u8;
977pub const THOST_FTDC_SoT_ReSetInvestorPasswd: u8 = 'E' as u8;
978pub const THOST_FTDC_SoT_InvestorPersonalityInfo: u8 = 'F' as u8;
979pub const THOST_FTDC_CSRCQ_Current: u8 = '0' as u8;
980pub const THOST_FTDC_CSRCQ_History: u8 = '1' as u8;
981pub const THOST_FTDC_FRS_Normal: u8 = '1' as u8;
982pub const THOST_FTDC_FRS_Freeze: u8 = '0' as u8;
983pub const THOST_FTDC_STST_Standard: u8 = '0' as u8;
984pub const THOST_FTDC_STST_NonStandard: u8 = '1' as u8;
985pub const THOST_FTDC_RPT_Freeze: u8 = '1' as u8;
986pub const THOST_FTDC_RPT_FreezeActive: u8 = '2' as u8;
987pub const THOST_FTDC_RPT_OpenLimit: u8 = '3' as u8;
988pub const THOST_FTDC_RPT_RelieveOpenLimit: u8 = '4' as u8;
989pub const THOST_FTDC_AMLDS_Normal: u8 = '0' as u8;
990pub const THOST_FTDC_AMLDS_Deleted: u8 = '1' as u8;
991pub const THOST_FTDC_AMLCHS_Init: u8 = '0' as u8;
992pub const THOST_FTDC_AMLCHS_Checking: u8 = '1' as u8;
993pub const THOST_FTDC_AMLCHS_Checked: u8 = '2' as u8;
994pub const THOST_FTDC_AMLCHS_RefuseReport: u8 = '3' as u8;
995pub const THOST_FTDC_AMLDT_DrawDay: u8 = '0' as u8;
996pub const THOST_FTDC_AMLDT_TouchDay: u8 = '1' as u8;
997pub const THOST_FTDC_AMLCL_CheckLevel0: u8 = '0' as u8;
998pub const THOST_FTDC_AMLCL_CheckLevel1: u8 = '1' as u8;
999pub const THOST_FTDC_AMLCL_CheckLevel2: u8 = '2' as u8;
1000pub const THOST_FTDC_AMLCL_CheckLevel3: u8 = '3' as u8;
1001pub const THOST_FTDC_EFT_CSV: u8 = '0' as u8;
1002pub const THOST_FTDC_EFT_EXCEL: u8 = '1' as u8;
1003pub const THOST_FTDC_EFT_DBF: u8 = '2' as u8;
1004pub const THOST_FTDC_SMT_Before: u8 = '1' as u8;
1005pub const THOST_FTDC_SMT_Settlement: u8 = '2' as u8;
1006pub const THOST_FTDC_SMT_After: u8 = '3' as u8;
1007pub const THOST_FTDC_SMT_Settlemented: u8 = '4' as u8;
1008pub const THOST_FTDC_SML_Must: u8 = '1' as u8;
1009pub const THOST_FTDC_SML_Alarm: u8 = '2' as u8;
1010pub const THOST_FTDC_SML_Prompt: u8 = '3' as u8;
1011pub const THOST_FTDC_SML_Ignore: u8 = '4' as u8;
1012pub const THOST_FTDC_SMG_Exhcange: u8 = '1' as u8;
1013pub const THOST_FTDC_SMG_ASP: u8 = '2' as u8;
1014pub const THOST_FTDC_SMG_CSRC: u8 = '3' as u8;
1015pub const THOST_FTDC_LUT_Repeatable: u8 = '1' as u8;
1016pub const THOST_FTDC_LUT_Unrepeatable: u8 = '2' as u8;
1017pub const THOST_FTDC_DAR_Settle: u8 = '1' as u8;
1018pub const THOST_FTDC_DAR_Exchange: u8 = '2' as u8;
1019pub const THOST_FTDC_DAR_CSRC: u8 = '3' as u8;
1020pub const THOST_FTDC_MGT_ExchMarginRate: u8 = '0' as u8;
1021pub const THOST_FTDC_MGT_InstrMarginRate: u8 = '1' as u8;
1022pub const THOST_FTDC_MGT_InstrMarginRateTrade: u8 = '2' as u8;
1023pub const THOST_FTDC_ACT_Intraday: u8 = '1' as u8;
1024pub const THOST_FTDC_ACT_Long: u8 = '2' as u8;
1025pub const THOST_FTDC_MRT_Exchange: u8 = '1' as u8;
1026pub const THOST_FTDC_MRT_Investor: u8 = '2' as u8;
1027pub const THOST_FTDC_MRT_InvestorTrade: u8 = '3' as u8;
1028pub const THOST_FTDC_BUS_UnBak: u8 = '0' as u8;
1029pub const THOST_FTDC_BUS_BakUp: u8 = '1' as u8;
1030pub const THOST_FTDC_BUS_BakUped: u8 = '2' as u8;
1031pub const THOST_FTDC_BUS_BakFail: u8 = '3' as u8;
1032pub const THOST_FTDC_SIS_UnInitialize: u8 = '0' as u8;
1033pub const THOST_FTDC_SIS_Initialize: u8 = '1' as u8;
1034pub const THOST_FTDC_SIS_Initialized: u8 = '2' as u8;
1035pub const THOST_FTDC_SRS_NoCreate: u8 = '0' as u8;
1036pub const THOST_FTDC_SRS_Create: u8 = '1' as u8;
1037pub const THOST_FTDC_SRS_Created: u8 = '2' as u8;
1038pub const THOST_FTDC_SRS_CreateFail: u8 = '3' as u8;
1039pub const THOST_FTDC_SSS_UnSaveData: u8 = '0' as u8;
1040pub const THOST_FTDC_SSS_SaveDatad: u8 = '1' as u8;
1041pub const THOST_FTDC_SAS_UnArchived: u8 = '0' as u8;
1042pub const THOST_FTDC_SAS_Archiving: u8 = '1' as u8;
1043pub const THOST_FTDC_SAS_Archived: u8 = '2' as u8;
1044pub const THOST_FTDC_SAS_ArchiveFail: u8 = '3' as u8;
1045pub const THOST_FTDC_CTPT_Unkown: u8 = '0' as u8;
1046pub const THOST_FTDC_CTPT_MainCenter: u8 = '1' as u8;
1047pub const THOST_FTDC_CTPT_BackUp: u8 = '2' as u8;
1048pub const THOST_FTDC_CDT_Normal: u8 = '0' as u8;
1049pub const THOST_FTDC_CDT_SpecFirst: u8 = '1' as u8;
1050pub const THOST_FTDC_MFUR_None: u8 = '0' as u8;
1051pub const THOST_FTDC_MFUR_Margin: u8 = '1' as u8;
1052pub const THOST_FTDC_MFUR_All: u8 = '2' as u8;
1053pub const THOST_FTDC_MFUR_CNY3: u8 = '3' as u8;
1054pub const THOST_FTDC_SPT_CzceHedge: u8 = '1' as u8;
1055pub const THOST_FTDC_SPT_IneForeignCurrency: u8 = '2' as u8;
1056pub const THOST_FTDC_SPT_DceOpenClose: u8 = '3' as u8;
1057pub const THOST_FTDC_FMT_Mortgage: u8 = '1' as u8;
1058pub const THOST_FTDC_FMT_Redemption: u8 = '2' as u8;
1059pub const THOST_FTDC_ASPI_BaseMargin: u8 = '1' as u8;
1060pub const THOST_FTDC_ASPI_LowestInterest: u8 = '2' as u8;
1061pub const THOST_FTDC_FMD_In: u8 = '1' as u8;
1062pub const THOST_FTDC_FMD_Out: u8 = '2' as u8;
1063pub const THOST_FTDC_BT_Profit: u8 = '0' as u8;
1064pub const THOST_FTDC_BT_Loss: u8 = '1' as u8;
1065pub const THOST_FTDC_BT_Other: u8 = 'Z' as u8;
1066pub const THOST_FTDC_SST_Manual: u8 = '0' as u8;
1067pub const THOST_FTDC_SST_Automatic: u8 = '1' as u8;
1068pub const THOST_FTDC_CED_Settlement: u8 = '0' as u8;
1069pub const THOST_FTDC_CED_Sale: u8 = '1' as u8;
1070pub const THOST_FTDC_CSS_Entry: u8 = '1' as u8;
1071pub const THOST_FTDC_CSS_Approve: u8 = '2' as u8;
1072pub const THOST_FTDC_CSS_Refuse: u8 = '3' as u8;
1073pub const THOST_FTDC_CSS_Revoke: u8 = '4' as u8;
1074pub const THOST_FTDC_CSS_Send: u8 = '5' as u8;
1075pub const THOST_FTDC_CSS_Success: u8 = '6' as u8;
1076pub const THOST_FTDC_CSS_Failure: u8 = '7' as u8;
1077pub const THOST_FTDC_REQF_NoSend: u8 = '0' as u8;
1078pub const THOST_FTDC_REQF_SendSuccess: u8 = '1' as u8;
1079pub const THOST_FTDC_REQF_SendFailed: u8 = '2' as u8;
1080pub const THOST_FTDC_REQF_WaitReSend: u8 = '3' as u8;
1081pub const THOST_FTDC_RESF_Success: u8 = '0' as u8;
1082pub const THOST_FTDC_RESF_InsuffiCient: u8 = '1' as u8;
1083pub const THOST_FTDC_RESF_UnKnown: u8 = '8' as u8;
1084pub const THOST_FTDC_EXS_Before: u8 = '0' as u8;
1085pub const THOST_FTDC_EXS_After: u8 = '1' as u8;
1086pub const THOST_FTDC_CR_Domestic: u8 = '1' as u8;
1087pub const THOST_FTDC_CR_GMT: u8 = '2' as u8;
1088pub const THOST_FTDC_CR_Foreign: u8 = '3' as u8;
1089pub const THOST_FTDC_HB_No: u8 = '0' as u8;
1090pub const THOST_FTDC_HB_Yes: u8 = '1' as u8;
1091pub const THOST_FTDC_SM_Normal: u8 = '1' as u8;
1092pub const THOST_FTDC_SM_Emerge: u8 = '2' as u8;
1093pub const THOST_FTDC_SM_Restore: u8 = '3' as u8;
1094pub const THOST_FTDC_TPT_Full: u8 = '1' as u8;
1095pub const THOST_FTDC_TPT_Increment: u8 = '2' as u8;
1096pub const THOST_FTDC_TPT_BackUp: u8 = '3' as u8;
1097pub const THOST_FTDC_LM_Trade: u8 = '0' as u8;
1098pub const THOST_FTDC_LM_Transfer: u8 = '1' as u8;
1099pub const THOST_FTDC_CPT_Instrument: u8 = '1' as u8;
1100pub const THOST_FTDC_CPT_Margin: u8 = '2' as u8;
1101pub const THOST_FTDC_HT_Yes: u8 = '1' as u8;
1102pub const THOST_FTDC_HT_No: u8 = '0' as u8;
1103pub const THOST_FTDC_AMT_Bank: u8 = '1' as u8;
1104pub const THOST_FTDC_AMT_Securities: u8 = '2' as u8;
1105pub const THOST_FTDC_AMT_Fund: u8 = '3' as u8;
1106pub const THOST_FTDC_AMT_Insurance: u8 = '4' as u8;
1107pub const THOST_FTDC_AMT_Trust: u8 = '5' as u8;
1108pub const THOST_FTDC_AMT_Other: u8 = '9' as u8;
1109pub const THOST_FTDC_CFIOT_FundIO: u8 = '0' as u8;
1110pub const THOST_FTDC_CFIOT_SwapCurrency: u8 = '1' as u8;
1111pub const THOST_FTDC_CAT_Futures: u8 = '1' as u8;
1112pub const THOST_FTDC_CAT_AssetmgrFuture: u8 = '2' as u8;
1113pub const THOST_FTDC_CAT_AssetmgrTrustee: u8 = '3' as u8;
1114pub const THOST_FTDC_CAT_AssetmgrTransfer: u8 = '4' as u8;
1115pub const THOST_FTDC_LT_Chinese: u8 = '1' as u8;
1116pub const THOST_FTDC_LT_English: u8 = '2' as u8;
1117pub const THOST_FTDC_AMCT_Person: u8 = '1' as u8;
1118pub const THOST_FTDC_AMCT_Organ: u8 = '2' as u8;
1119pub const THOST_FTDC_AMCT_SpecialOrgan: u8 = '4' as u8;
1120pub const THOST_FTDC_ASST_Futures: u8 = '3' as u8;
1121pub const THOST_FTDC_ASST_SpecialOrgan: u8 = '4' as u8;
1122pub const THOST_FTDC_CIT_HasExch: u8 = '0' as u8;
1123pub const THOST_FTDC_CIT_HasATP: u8 = '1' as u8;
1124pub const THOST_FTDC_CIT_HasDiff: u8 = '2' as u8;
1125pub const THOST_FTDC_DT_HandDeliv: u8 = '1' as u8;
1126pub const THOST_FTDC_DT_PersonDeliv: u8 = '2' as u8;
1127pub const THOST_FTDC_MMSA_NO: u8 = '0' as u8;
1128pub const THOST_FTDC_MMSA_YES: u8 = '1' as u8;
1129pub const THOST_FTDC_CACT_Person: u8 = '0' as u8;
1130pub const THOST_FTDC_CACT_Company: u8 = '1' as u8;
1131pub const THOST_FTDC_CACT_Other: u8 = '2' as u8;
1132pub const THOST_FTDC_UOAAT_Futures: u8 = '1' as u8;
1133pub const THOST_FTDC_UOAAT_SpecialOrgan: u8 = '2' as u8;
1134pub const THOST_FTDC_DEN_Buy: u8 = '0' as u8;
1135pub const THOST_FTDC_DEN_Sell: u8 = '1' as u8;
1136pub const THOST_FTDC_OFEN_Open: u8 = '0' as u8;
1137pub const THOST_FTDC_OFEN_Close: u8 = '1' as u8;
1138pub const THOST_FTDC_OFEN_ForceClose: u8 = '2' as u8;
1139pub const THOST_FTDC_OFEN_CloseToday: u8 = '3' as u8;
1140pub const THOST_FTDC_OFEN_CloseYesterday: u8 = '4' as u8;
1141pub const THOST_FTDC_OFEN_ForceOff: u8 = '5' as u8;
1142pub const THOST_FTDC_OFEN_LocalForceClose: u8 = '6' as u8;
1143pub const THOST_FTDC_HFEN_Speculation: u8 = '1' as u8;
1144pub const THOST_FTDC_HFEN_Arbitrage: u8 = '2' as u8;
1145pub const THOST_FTDC_HFEN_Hedge: u8 = '3' as u8;
1146pub const THOST_FTDC_FIOTEN_FundIO: u8 = '1' as u8;
1147pub const THOST_FTDC_FIOTEN_Transfer: u8 = '2' as u8;
1148pub const THOST_FTDC_FIOTEN_SwapCurrency: u8 = '3' as u8;
1149pub const THOST_FTDC_FTEN_Deposite: u8 = '1' as u8;
1150pub const THOST_FTDC_FTEN_ItemFund: u8 = '2' as u8;
1151pub const THOST_FTDC_FTEN_Company: u8 = '3' as u8;
1152pub const THOST_FTDC_FTEN_InnerTransfer: u8 = '4' as u8;
1153pub const THOST_FTDC_FDEN_In: u8 = '1' as u8;
1154pub const THOST_FTDC_FDEN_Out: u8 = '2' as u8;
1155pub const THOST_FTDC_FMDEN_In: u8 = '1' as u8;
1156pub const THOST_FTDC_FMDEN_Out: u8 = '2' as u8;
1157pub const THOST_FTDC_CP_CallOptions: u8 = '1' as u8;
1158pub const THOST_FTDC_CP_PutOptions: u8 = '2' as u8;
1159pub const THOST_FTDC_STM_Continental: u8 = '0' as u8;
1160pub const THOST_FTDC_STM_American: u8 = '1' as u8;
1161pub const THOST_FTDC_STM_Bermuda: u8 = '2' as u8;
1162pub const THOST_FTDC_STT_Hedge: u8 = '0' as u8;
1163pub const THOST_FTDC_STT_Match: u8 = '1' as u8;
1164pub const THOST_FTDC_APPT_NotStrikeNum: u8 = '4' as u8;
1165pub const THOST_FTDC_GUDS_Gen: u8 = '0' as u8;
1166pub const THOST_FTDC_GUDS_Hand: u8 = '1' as u8;
1167pub const THOST_FTDC_OER_NoExec: u8 = 'n' as u8;
1168pub const THOST_FTDC_OER_Canceled: u8 = 'c' as u8;
1169pub const THOST_FTDC_OER_OK: u8 = '0' as u8;
1170pub const THOST_FTDC_OER_NoPosition: u8 = '1' as u8;
1171pub const THOST_FTDC_OER_NoDeposit: u8 = '2' as u8;
1172pub const THOST_FTDC_OER_NoParticipant: u8 = '3' as u8;
1173pub const THOST_FTDC_OER_NoClient: u8 = '4' as u8;
1174pub const THOST_FTDC_OER_NoInstrument: u8 = '6' as u8;
1175pub const THOST_FTDC_OER_NoRight: u8 = '7' as u8;
1176pub const THOST_FTDC_OER_InvalidVolume: u8 = '8' as u8;
1177pub const THOST_FTDC_OER_NoEnoughHistoryTrade: u8 = '9' as u8;
1178pub const THOST_FTDC_OER_Unknown: u8 = 'a' as u8;
1179pub const THOST_FTDC_COMBT_Future: u8 = '0' as u8;
1180pub const THOST_FTDC_COMBT_BUL: u8 = '1' as u8;
1181pub const THOST_FTDC_COMBT_BER: u8 = '2' as u8;
1182pub const THOST_FTDC_COMBT_STD: u8 = '3' as u8;
1183pub const THOST_FTDC_COMBT_STG: u8 = '4' as u8;
1184pub const THOST_FTDC_COMBT_PRT: u8 = '5' as u8;
1185pub const THOST_FTDC_COMBT_CAS: u8 = '6' as u8;
1186pub const THOST_FTDC_COMBT_OPL: u8 = '7' as u8;
1187pub const THOST_FTDC_COMBT_BFO: u8 = '8' as u8;
1188pub const THOST_FTDC_COMBT_BLS: u8 = '9' as u8;
1189pub const THOST_FTDC_COMBT_BES: u8 = 'a' as u8;
1190pub const THOST_FTDC_DCECOMBT_SPL: u8 = '0' as u8;
1191pub const THOST_FTDC_DCECOMBT_OPL: u8 = '1' as u8;
1192pub const THOST_FTDC_DCECOMBT_SP: u8 = '2' as u8;
1193pub const THOST_FTDC_DCECOMBT_SPC: u8 = '3' as u8;
1194pub const THOST_FTDC_DCECOMBT_BLS: u8 = '4' as u8;
1195pub const THOST_FTDC_DCECOMBT_BES: u8 = '5' as u8;
1196pub const THOST_FTDC_DCECOMBT_CAS: u8 = '6' as u8;
1197pub const THOST_FTDC_DCECOMBT_STD: u8 = '7' as u8;
1198pub const THOST_FTDC_DCECOMBT_STG: u8 = '8' as u8;
1199pub const THOST_FTDC_DCECOMBT_BFO: u8 = '9' as u8;
1200pub const THOST_FTDC_DCECOMBT_SFO: u8 = 'a' as u8;
1201pub const THOST_FTDC_ORPT_PreSettlementPrice: u8 = '1' as u8;
1202pub const THOST_FTDC_ORPT_OpenPrice: u8 = '4' as u8;
1203pub const THOST_FTDC_ORPT_MaxPreSettlementPrice: u8 = '5' as u8;
1204pub const THOST_FTDC_BLAG_Default: u8 = '1' as u8;
1205pub const THOST_FTDC_BLAG_IncludeOptValLost: u8 = '2' as u8;
1206pub const THOST_FTDC_ACTP_Exec: u8 = '1' as u8;
1207pub const THOST_FTDC_ACTP_Abandon: u8 = '2' as u8;
1208pub const THOST_FTDC_FQST_Submitted: u8 = 'a' as u8;
1209pub const THOST_FTDC_FQST_Accepted: u8 = 'b' as u8;
1210pub const THOST_FTDC_FQST_Rejected: u8 = 'c' as u8;
1211pub const THOST_FTDC_VM_Absolute: u8 = '0' as u8;
1212pub const THOST_FTDC_VM_Ratio: u8 = '1' as u8;
1213pub const THOST_FTDC_EOPF_Reserve: u8 = '0' as u8;
1214pub const THOST_FTDC_EOPF_UnReserve: u8 = '1' as u8;
1215pub const THOST_FTDC_EOCF_AutoClose: u8 = '0' as u8;
1216pub const THOST_FTDC_EOCF_NotToClose: u8 = '1' as u8;
1217pub const THOST_FTDC_PTE_Futures: u8 = '1' as u8;
1218pub const THOST_FTDC_PTE_Options: u8 = '2' as u8;
1219pub const THOST_FTDC_CUFN_CUFN_O: u8 = 'O' as u8;
1220pub const THOST_FTDC_CUFN_CUFN_T: u8 = 'T' as u8;
1221pub const THOST_FTDC_CUFN_CUFN_P: u8 = 'P' as u8;
1222pub const THOST_FTDC_CUFN_CUFN_N: u8 = 'N' as u8;
1223pub const THOST_FTDC_CUFN_CUFN_L: u8 = 'L' as u8;
1224pub const THOST_FTDC_CUFN_CUFN_F: u8 = 'F' as u8;
1225pub const THOST_FTDC_CUFN_CUFN_C: u8 = 'C' as u8;
1226pub const THOST_FTDC_CUFN_CUFN_M: u8 = 'M' as u8;
1227pub const THOST_FTDC_DUFN_DUFN_O: u8 = 'O' as u8;
1228pub const THOST_FTDC_DUFN_DUFN_T: u8 = 'T' as u8;
1229pub const THOST_FTDC_DUFN_DUFN_P: u8 = 'P' as u8;
1230pub const THOST_FTDC_DUFN_DUFN_F: u8 = 'F' as u8;
1231pub const THOST_FTDC_DUFN_DUFN_C: u8 = 'C' as u8;
1232pub const THOST_FTDC_DUFN_DUFN_D: u8 = 'D' as u8;
1233pub const THOST_FTDC_DUFN_DUFN_M: u8 = 'M' as u8;
1234pub const THOST_FTDC_DUFN_DUFN_S: u8 = 'S' as u8;
1235pub const THOST_FTDC_SUFN_SUFN_O: u8 = 'O' as u8;
1236pub const THOST_FTDC_SUFN_SUFN_T: u8 = 'T' as u8;
1237pub const THOST_FTDC_SUFN_SUFN_P: u8 = 'P' as u8;
1238pub const THOST_FTDC_SUFN_SUFN_F: u8 = 'F' as u8;
1239pub const THOST_FTDC_CFUFN_SUFN_T: u8 = 'T' as u8;
1240pub const THOST_FTDC_CFUFN_SUFN_P: u8 = 'P' as u8;
1241pub const THOST_FTDC_CFUFN_SUFN_F: u8 = 'F' as u8;
1242pub const THOST_FTDC_CFUFN_SUFN_S: u8 = 'S' as u8;
1243pub const THOST_FTDC_CMDR_Comb: u8 = '0' as u8;
1244pub const THOST_FTDC_CMDR_UnComb: u8 = '1' as u8;
1245pub const THOST_FTDC_CMDR_DelComb: u8 = '2' as u8;
1246pub const THOST_FTDC_STOV_RealValue: u8 = '1' as u8;
1247pub const THOST_FTDC_STOV_ProfitValue: u8 = '2' as u8;
1248pub const THOST_FTDC_STOV_RealRatio: u8 = '3' as u8;
1249pub const THOST_FTDC_STOV_ProfitRatio: u8 = '4' as u8;
1250pub const THOST_FTDC_ROAST_Processing: u8 = '0' as u8;
1251pub const THOST_FTDC_ROAST_Cancelled: u8 = '1' as u8;
1252pub const THOST_FTDC_ROAST_Opened: u8 = '2' as u8;
1253pub const THOST_FTDC_ROAST_Invalid: u8 = '3' as u8;
1254pub const THOST_FTDC_WPSR_Lib: u8 = '1' as u8;
1255pub const THOST_FTDC_WPSR_Manual: u8 = '2' as u8;
1256pub const THOST_FTDC_OSCF_CloseSelfOptionPosition: u8 = '1' as u8;
1257pub const THOST_FTDC_OSCF_ReserveOptionPosition: u8 = '2' as u8;
1258pub const THOST_FTDC_OSCF_SellCloseSelfFuturePosition: u8 = '3' as u8;
1259pub const THOST_FTDC_OSCF_ReserveFuturePosition: u8 = '4' as u8;
1260pub const THOST_FTDC_BZTP_Future: u8 = '1' as u8;
1261pub const THOST_FTDC_BZTP_Stock: u8 = '2' as u8;
1262pub const THOST_FTDC_APP_TYPE_Investor: u8 = '1' as u8;
1263pub const THOST_FTDC_APP_TYPE_InvestorRelay: u8 = '2' as u8;
1264pub const THOST_FTDC_APP_TYPE_OperatorRelay: u8 = '3' as u8;
1265pub const THOST_FTDC_APP_TYPE_UnKnown: u8 = '4' as u8;
1266pub const THOST_FTDC_RV_Right: u8 = '0' as u8;
1267pub const THOST_FTDC_RV_Refuse: u8 = '1' as u8;
1268pub const THOST_FTDC_OTC_TRDT_Block: u8 = '0' as u8;
1269pub const THOST_FTDC_OTC_TRDT_EFP: u8 = '1' as u8;
1270pub const THOST_FTDC_OTC_MT_DV01: u8 = '1' as u8;
1271pub const THOST_FTDC_OTC_MT_ParValue: u8 = '2' as u8;
1272pub const THOST_FTDC_AU_WHITE: u8 = '0' as u8;
1273pub const THOST_FTDC_AU_BLACK: u8 = '1' as u8;
1274pub const THOST_FTDC_INS_ALL: u8 = '0' as u8;
1275pub const THOST_FTDC_INS_FUTURE: u8 = '1' as u8;
1276pub const THOST_FTDC_INS_OPTION: u8 = '2' as u8;
1277pub const THOST_FTDC_INS_COMB: u8 = '3' as u8;
1278pub const THOST_FTDC_TD_ALL: u8 = '0' as u8;
1279pub const THOST_FTDC_TD_TRADE: u8 = '1' as u8;
1280pub const THOST_FTDC_TD_UNTRADE: u8 = '2' as u8;
1281pub const THOST_FTDC_PS_tradeable: u8 = '1' as u8;
1282pub const THOST_FTDC_PS_untradeable: u8 = '2' as u8;
1283pub const THOST_FTDC_SDS_Readable: u8 = '1' as u8;
1284pub const THOST_FTDC_SDS_Reading: u8 = '2' as u8;
1285pub const THOST_FTDC_SDS_Readend: u8 = '3' as u8;
1286pub const THOST_FTDC_SDS_OptErr: u8 = 'e' as u8;
1287pub const THOST_FTDC_ACD_Add: u8 = '1' as u8;
1288pub const THOST_FTDC_ACD_Del: u8 = '2' as u8;
1289pub const THOST_FTDC_ACD_Upd: u8 = '3' as u8;
1290pub const THOST_FTDC_OAC_Balance: u8 = '1' as u8;
1291pub const THOST_FTDC_OAC_OrigFirst: u8 = '2' as u8;
1292pub const THOST_FTDC_PLCL_None: u8 = '0' as u8;
1293pub const THOST_FTDC_PLCL_Product: u8 = '1' as u8;
1294pub const THOST_FTDC_PLCL_Inst: u8 = '2' as u8;
1295pub const THOST_FTDC_OFCL_None: u8 = '0' as u8;
1296pub const THOST_FTDC_OFCL_Product: u8 = '1' as u8;
1297pub const THOST_FTDC_OFCL_Inst: u8 = '2' as u8;
1298pub const THOST_FTDC_EBL_False: u8 = '0' as u8;
1299pub const THOST_FTDC_EBL_True: u8 = '1' as u8;
1300pub const THOST_FTDC_ETR_USUAL: u8 = '1' as u8;
1301pub const THOST_FTDC_ETR_FNSP: u8 = '2' as u8;
1302pub const THOST_FTDC_ETR_BNSP: u8 = '3' as u8;
1303pub const THOST_FTDC_ETR_SPOT: u8 = '4' as u8;
1304pub const THOST_FTDC_EPF_None: u8 = '0' as u8;
1305pub const THOST_FTDC_EPF_SPBM: u8 = '1' as u8;
1306pub const THOST_FTDC_EPF_RULE: u8 = '2' as u8;
1307pub const THOST_FTDC_EPF_SPMM: u8 = '3' as u8;
1308pub const THOST_FTDC_EPF_RCAMS: u8 = '4' as u8;
1309pub const THOST_FTDC_WDPID_CashIn: u8 = 'C' as u8;
1310pub const THOST_FTDC_ITR_CloseOnly: u8 = '1' as u8;
1311pub const THOST_FTDC_ITR_Forbidden: u8 = '2' as u8;
1312pub const THOST_FTDC_IMID_BothSide: u8 = '1' as u8;
1313pub const THOST_FTDC_IMID_MMSA: u8 = '2' as u8;
1314pub const THOST_FTDC_IMID_SPMM: u8 = '3' as u8;
1315pub const THOST_FTDC_ERComb_BUC: u8 = '0' as u8;
1316pub const THOST_FTDC_ERComb_BEC: u8 = '1' as u8;
1317pub const THOST_FTDC_ERComb_BEP: u8 = '2' as u8;
1318pub const THOST_FTDC_ERComb_BUP: u8 = '3' as u8;
1319pub const THOST_FTDC_ERComb_CAS: u8 = '4' as u8;
1320pub const THOST_FTDC_EET_None: u8 = '0' as u8;
1321pub const THOST_FTDC_EET_SPBM_AddOnHedge: u8 = '1' as u8;
1322pub const THOST_FTDC_EIC_Usual: u8 = '1' as u8;
1323pub const THOST_FTDC_EIC_Delivery: u8 = '2' as u8;
1324pub const THOST_FTDC_EIC_NonComb: u8 = '3' as u8;
1325pub const THOST_FTDC_PCF_None: u8 = '0' as u8;
1326pub const THOST_FTDC_PCF_OnlyFrozen: u8 = '1' as u8;
1327pub const THOST_FTDC_PCF_PositionChange: u8 = '2' as u8;
1328pub const THOST_FTDC_PRS_Init: u8 = '0' as u8;
1329pub const THOST_FTDC_PRS_Sync: u8 = '1' as u8;
1330pub const THOST_FTDC_PRS_UserUpd: u8 = '2' as u8;
1331pub const THOST_FTDC_PRS_SuperUserUpd: u8 = '3' as u8;
1332pub const THOST_FTDC_PRS_SecUpd: u8 = '4' as u8;
1333pub const THOST_FTDC_ASM_Trade: u8 = '0' as u8;
1334pub const THOST_FTDC_ASM_MarketData: u8 = '1' as u8;
1335pub const THOST_FTDC_ASM_Other: u8 = '2' as u8;
1336pub const THOST_FTDC_ADV_V4: u8 = '0' as u8;
1337pub const THOST_FTDC_ADV_V6: u8 = '1' as u8;
1338pub const THOST_FTDC_TGQS_QryIdle: u8 = '1' as u8;
1339pub const THOST_FTDC_TGQS_QryBusy: u8 = '2' as u8;
1340pub const THOST_FTDC_OT_OPT_OFFSET: u8 = '0' as u8;
1341pub const THOST_FTDC_OT_FUT_OFFSET: u8 = '1' as u8;
1342pub const THOST_FTDC_OT_EXEC_OFFSET: u8 = '2' as u8;
1343pub const THOST_FTDC_OT_PERFORM_OFFSET: u8 = '3' as u8;
1344pub const THOST_FTDC_AS_Trade: u8 = '0' as u8;
1345pub const THOST_FTDC_AS_Member: u8 = '1' as u8;
1346
1347unsafe impl Send for MdApi {}
1348unsafe impl Sync for MdApi {}
1349
1350impl MdApi {
1351    pub fn CreateMdApiAndSpi(tx: Sender<MdSpiMsg>, flow_path: String, is_using_udp: bool, is_multicast: bool, is_production_mode: bool) -> UniquePtr<MdApi> {
1352        if !Path::new(&flow_path).exists() {
1353            create_dir_all(&flow_path).unwrap();
1354        }
1355        let spi = Arc::pin(MdSpi { tx });
1356        let api = CreateMdApi(&spi, flow_path, is_using_udp, is_multicast, is_production_mode);
1357        forget(spi); // 让 spi 一直存在,防止被释放
1358        api
1359    }
1360}
1361
1362#[derive(Debug, Clone)]
1363pub enum MdSpiMsg {
1364    OnFrontConnected,
1365    OnFrontDisconnected(i32),
1366    OnHeartBeatWarning(i32),
1367    OnRspUserLogin(RspUserLoginField, RspInfoField, i32, bool),
1368    OnRspUserLogout(UserLogoutField, RspInfoField, i32, bool),
1369    OnRspQryMulticastInstrument(MulticastInstrumentField, RspInfoField, i32, bool),
1370    OnRspError(RspInfoField, i32, bool),
1371    OnRspSubMarketData(SpecificInstrumentField, RspInfoField, i32, bool),
1372    OnRspUnSubMarketData(SpecificInstrumentField, RspInfoField, i32, bool),
1373    OnRspSubForQuoteRsp(SpecificInstrumentField, RspInfoField, i32, bool),
1374    OnRspUnSubForQuoteRsp(SpecificInstrumentField, RspInfoField, i32, bool),
1375    OnRtnDepthMarketData(DepthMarketDataField),
1376    OnRtnForQuoteRsp(ForQuoteRspField),
1377}
1378
1379pub struct MdSpi {
1380    tx: Sender<MdSpiMsg>,
1381}
1382
1383impl MdSpi {
1384pub fn OnFrontConnected(&self) { self.tx.send(MdSpiMsg::OnFrontConnected).expect("sending MdSpiMsg failed"); }
1385pub fn OnFrontDisconnected(&self, nReason: i32) { self.tx.send(MdSpiMsg::OnFrontDisconnected(nReason)).expect("sending MdSpiMsg failed"); }
1386pub fn OnHeartBeatWarning(&self, nTimeLapse: i32) { self.tx.send(MdSpiMsg::OnHeartBeatWarning(nTimeLapse)).expect("sending MdSpiMsg failed"); }
1387pub fn OnRspUserLogin(&self, pRspUserLogin: RspUserLoginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(MdSpiMsg::OnRspUserLogin(pRspUserLogin, pRspInfo, nRequestID, bIsLast)).expect("sending MdSpiMsg failed"); }
1388pub fn OnRspUserLogout(&self, pUserLogout: UserLogoutField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(MdSpiMsg::OnRspUserLogout(pUserLogout, pRspInfo, nRequestID, bIsLast)).expect("sending MdSpiMsg failed"); }
1389pub fn OnRspQryMulticastInstrument(&self, pMulticastInstrument: MulticastInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(MdSpiMsg::OnRspQryMulticastInstrument(pMulticastInstrument, pRspInfo, nRequestID, bIsLast)).expect("sending MdSpiMsg failed"); }
1390pub fn OnRspError(&self, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(MdSpiMsg::OnRspError(pRspInfo, nRequestID, bIsLast)).expect("sending MdSpiMsg failed"); }
1391pub fn OnRspSubMarketData(&self, pSpecificInstrument: SpecificInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(MdSpiMsg::OnRspSubMarketData(pSpecificInstrument, pRspInfo, nRequestID, bIsLast)).expect("sending MdSpiMsg failed"); }
1392pub fn OnRspUnSubMarketData(&self, pSpecificInstrument: SpecificInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(MdSpiMsg::OnRspUnSubMarketData(pSpecificInstrument, pRspInfo, nRequestID, bIsLast)).expect("sending MdSpiMsg failed"); }
1393pub fn OnRspSubForQuoteRsp(&self, pSpecificInstrument: SpecificInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(MdSpiMsg::OnRspSubForQuoteRsp(pSpecificInstrument, pRspInfo, nRequestID, bIsLast)).expect("sending MdSpiMsg failed"); }
1394pub fn OnRspUnSubForQuoteRsp(&self, pSpecificInstrument: SpecificInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(MdSpiMsg::OnRspUnSubForQuoteRsp(pSpecificInstrument, pRspInfo, nRequestID, bIsLast)).expect("sending MdSpiMsg failed"); }
1395pub fn OnRtnDepthMarketData(&self, pDepthMarketData: DepthMarketDataField) { self.tx.send(MdSpiMsg::OnRtnDepthMarketData(pDepthMarketData)).expect("sending MdSpiMsg failed"); }
1396pub fn OnRtnForQuoteRsp(&self, pForQuoteRsp: ForQuoteRspField) { self.tx.send(MdSpiMsg::OnRtnForQuoteRsp(pForQuoteRsp)).expect("sending MdSpiMsg failed"); }
1397}
1398
1399unsafe impl Send for TraderApi {}
1400unsafe impl Sync for TraderApi {}
1401
1402impl TraderApi {
1403    pub fn CreateTraderApiAndSpi(tx: Sender<TraderSpiMsg>, flow_path: String, is_production_mode: bool) -> UniquePtr<TraderApi> {
1404        if !Path::new(&flow_path).exists() {
1405            create_dir_all(&flow_path).unwrap();
1406        }
1407        let spi = Arc::pin(TraderSpi { tx });
1408        let api = CreateTraderApi(&spi, flow_path, is_production_mode);
1409        forget(spi); // 让 spi 一直存在,防止被释放
1410        api
1411    }
1412}
1413
1414#[derive(Debug, Clone)]
1415pub enum TraderSpiMsg {
1416    OnFrontConnected,
1417    OnFrontDisconnected(i32),
1418    OnHeartBeatWarning(i32),
1419    OnRspAuthenticate(RspAuthenticateField, RspInfoField, i32, bool),
1420    OnRspUserLogin(RspUserLoginField, RspInfoField, i32, bool),
1421    OnRspUserLogout(UserLogoutField, RspInfoField, i32, bool),
1422    OnRspUserPasswordUpdate(UserPasswordUpdateField, RspInfoField, i32, bool),
1423    OnRspTradingAccountPasswordUpdate(TradingAccountPasswordUpdateField, RspInfoField, i32, bool),
1424    OnRspUserAuthMethod(RspUserAuthMethodField, RspInfoField, i32, bool),
1425    OnRspGenUserCaptcha(RspGenUserCaptchaField, RspInfoField, i32, bool),
1426    OnRspGenUserText(RspGenUserTextField, RspInfoField, i32, bool),
1427    OnRspOrderInsert(InputOrderField, RspInfoField, i32, bool),
1428    OnRspParkedOrderInsert(ParkedOrderField, RspInfoField, i32, bool),
1429    OnRspParkedOrderAction(ParkedOrderActionField, RspInfoField, i32, bool),
1430    OnRspOrderAction(InputOrderActionField, RspInfoField, i32, bool),
1431    OnRspQryMaxOrderVolume(QryMaxOrderVolumeField, RspInfoField, i32, bool),
1432    OnRspSettlementInfoConfirm(SettlementInfoConfirmField, RspInfoField, i32, bool),
1433    OnRspRemoveParkedOrder(RemoveParkedOrderField, RspInfoField, i32, bool),
1434    OnRspRemoveParkedOrderAction(RemoveParkedOrderActionField, RspInfoField, i32, bool),
1435    OnRspExecOrderInsert(InputExecOrderField, RspInfoField, i32, bool),
1436    OnRspExecOrderAction(InputExecOrderActionField, RspInfoField, i32, bool),
1437    OnRspForQuoteInsert(InputForQuoteField, RspInfoField, i32, bool),
1438    OnRspQuoteInsert(InputQuoteField, RspInfoField, i32, bool),
1439    OnRspQuoteAction(InputQuoteActionField, RspInfoField, i32, bool),
1440    OnRspBatchOrderAction(InputBatchOrderActionField, RspInfoField, i32, bool),
1441    OnRspOptionSelfCloseInsert(InputOptionSelfCloseField, RspInfoField, i32, bool),
1442    OnRspOptionSelfCloseAction(InputOptionSelfCloseActionField, RspInfoField, i32, bool),
1443    OnRspCombActionInsert(InputCombActionField, RspInfoField, i32, bool),
1444    OnRspQryOrder(OrderField, RspInfoField, i32, bool),
1445    OnRspQryTrade(TradeField, RspInfoField, i32, bool),
1446    OnRspQryInvestorPosition(InvestorPositionField, RspInfoField, i32, bool),
1447    OnRspQryTradingAccount(TradingAccountField, RspInfoField, i32, bool),
1448    OnRspQryInvestor(InvestorField, RspInfoField, i32, bool),
1449    OnRspQryTradingCode(TradingCodeField, RspInfoField, i32, bool),
1450    OnRspQryInstrumentMarginRate(InstrumentMarginRateField, RspInfoField, i32, bool),
1451    OnRspQryInstrumentCommissionRate(InstrumentCommissionRateField, RspInfoField, i32, bool),
1452    OnRspQryUserSession(UserSessionField, RspInfoField, i32, bool),
1453    OnRspQryExchange(ExchangeField, RspInfoField, i32, bool),
1454    OnRspQryProduct(ProductField, RspInfoField, i32, bool),
1455    OnRspQryInstrument(InstrumentField, RspInfoField, i32, bool),
1456    OnRspQryDepthMarketData(DepthMarketDataField, RspInfoField, i32, bool),
1457    OnRspQryTraderOffer(TraderOfferField, RspInfoField, i32, bool),
1458    OnRspQrySettlementInfo(SettlementInfoField, RspInfoField, i32, bool),
1459    OnRspQryTransferBank(TransferBankField, RspInfoField, i32, bool),
1460    OnRspQryInvestorPositionDetail(InvestorPositionDetailField, RspInfoField, i32, bool),
1461    OnRspQryNotice(NoticeField, RspInfoField, i32, bool),
1462    OnRspQrySettlementInfoConfirm(SettlementInfoConfirmField, RspInfoField, i32, bool),
1463    OnRspQryInvestorPositionCombineDetail(InvestorPositionCombineDetailField, RspInfoField, i32, bool),
1464    OnRspQryCFMMCTradingAccountKey(CFMMCTradingAccountKeyField, RspInfoField, i32, bool),
1465    OnRspQryEWarrantOffset(EWarrantOffsetField, RspInfoField, i32, bool),
1466    OnRspQryInvestorProductGroupMargin(InvestorProductGroupMarginField, RspInfoField, i32, bool),
1467    OnRspQryExchangeMarginRate(ExchangeMarginRateField, RspInfoField, i32, bool),
1468    OnRspQryExchangeMarginRateAdjust(ExchangeMarginRateAdjustField, RspInfoField, i32, bool),
1469    OnRspQryExchangeRate(ExchangeRateField, RspInfoField, i32, bool),
1470    OnRspQrySecAgentACIDMap(SecAgentACIDMapField, RspInfoField, i32, bool),
1471    OnRspQryProductExchRate(ProductExchRateField, RspInfoField, i32, bool),
1472    OnRspQryProductGroup(ProductGroupField, RspInfoField, i32, bool),
1473    OnRspQryMMInstrumentCommissionRate(MMInstrumentCommissionRateField, RspInfoField, i32, bool),
1474    OnRspQryMMOptionInstrCommRate(MMOptionInstrCommRateField, RspInfoField, i32, bool),
1475    OnRspQryInstrumentOrderCommRate(InstrumentOrderCommRateField, RspInfoField, i32, bool),
1476    OnRspQrySecAgentTradingAccount(TradingAccountField, RspInfoField, i32, bool),
1477    OnRspQrySecAgentCheckMode(SecAgentCheckModeField, RspInfoField, i32, bool),
1478    OnRspQrySecAgentTradeInfo(SecAgentTradeInfoField, RspInfoField, i32, bool),
1479    OnRspQryOptionInstrTradeCost(OptionInstrTradeCostField, RspInfoField, i32, bool),
1480    OnRspQryOptionInstrCommRate(OptionInstrCommRateField, RspInfoField, i32, bool),
1481    OnRspQryExecOrder(ExecOrderField, RspInfoField, i32, bool),
1482    OnRspQryForQuote(ForQuoteField, RspInfoField, i32, bool),
1483    OnRspQryQuote(QuoteField, RspInfoField, i32, bool),
1484    OnRspQryOptionSelfClose(OptionSelfCloseField, RspInfoField, i32, bool),
1485    OnRspQryInvestUnit(InvestUnitField, RspInfoField, i32, bool),
1486    OnRspQryCombInstrumentGuard(CombInstrumentGuardField, RspInfoField, i32, bool),
1487    OnRspQryCombAction(CombActionField, RspInfoField, i32, bool),
1488    OnRspQryTransferSerial(TransferSerialField, RspInfoField, i32, bool),
1489    OnRspQryAccountregister(AccountregisterField, RspInfoField, i32, bool),
1490    OnRspError(RspInfoField, i32, bool),
1491    OnRtnOrder(OrderField),
1492    OnRtnTrade(TradeField),
1493    OnErrRtnOrderInsert(InputOrderField, RspInfoField),
1494    OnErrRtnOrderAction(OrderActionField, RspInfoField),
1495    OnRtnInstrumentStatus(InstrumentStatusField),
1496    OnRtnBulletin(BulletinField),
1497    OnRtnTradingNotice(TradingNoticeInfoField),
1498    OnRtnErrorConditionalOrder(ErrorConditionalOrderField),
1499    OnRtnExecOrder(ExecOrderField),
1500    OnErrRtnExecOrderInsert(InputExecOrderField, RspInfoField),
1501    OnErrRtnExecOrderAction(ExecOrderActionField, RspInfoField),
1502    OnErrRtnForQuoteInsert(InputForQuoteField, RspInfoField),
1503    OnRtnQuote(QuoteField),
1504    OnErrRtnQuoteInsert(InputQuoteField, RspInfoField),
1505    OnErrRtnQuoteAction(QuoteActionField, RspInfoField),
1506    OnRtnForQuoteRsp(ForQuoteRspField),
1507    OnRtnCFMMCTradingAccountToken(CFMMCTradingAccountTokenField),
1508    OnErrRtnBatchOrderAction(BatchOrderActionField, RspInfoField),
1509    OnRtnOptionSelfClose(OptionSelfCloseField),
1510    OnErrRtnOptionSelfCloseInsert(InputOptionSelfCloseField, RspInfoField),
1511    OnErrRtnOptionSelfCloseAction(OptionSelfCloseActionField, RspInfoField),
1512    OnRtnCombAction(CombActionField),
1513    OnErrRtnCombActionInsert(InputCombActionField, RspInfoField),
1514    OnRspQryContractBank(ContractBankField, RspInfoField, i32, bool),
1515    OnRspQryParkedOrder(ParkedOrderField, RspInfoField, i32, bool),
1516    OnRspQryParkedOrderAction(ParkedOrderActionField, RspInfoField, i32, bool),
1517    OnRspQryTradingNotice(TradingNoticeField, RspInfoField, i32, bool),
1518    OnRspQryBrokerTradingParams(BrokerTradingParamsField, RspInfoField, i32, bool),
1519    OnRspQryBrokerTradingAlgos(BrokerTradingAlgosField, RspInfoField, i32, bool),
1520    OnRspQueryCFMMCTradingAccountToken(QueryCFMMCTradingAccountTokenField, RspInfoField, i32, bool),
1521    OnRtnFromBankToFutureByBank(RspTransferField),
1522    OnRtnFromFutureToBankByBank(RspTransferField),
1523    OnRtnRepealFromBankToFutureByBank(RspRepealField),
1524    OnRtnRepealFromFutureToBankByBank(RspRepealField),
1525    OnRtnFromBankToFutureByFuture(RspTransferField),
1526    OnRtnFromFutureToBankByFuture(RspTransferField),
1527    OnRtnRepealFromBankToFutureByFutureManual(RspRepealField),
1528    OnRtnRepealFromFutureToBankByFutureManual(RspRepealField),
1529    OnRtnQueryBankBalanceByFuture(NotifyQueryAccountField),
1530    OnErrRtnBankToFutureByFuture(ReqTransferField, RspInfoField),
1531    OnErrRtnFutureToBankByFuture(ReqTransferField, RspInfoField),
1532    OnErrRtnRepealBankToFutureByFutureManual(ReqRepealField, RspInfoField),
1533    OnErrRtnRepealFutureToBankByFutureManual(ReqRepealField, RspInfoField),
1534    OnErrRtnQueryBankBalanceByFuture(ReqQueryAccountField, RspInfoField),
1535    OnRtnRepealFromBankToFutureByFuture(RspRepealField),
1536    OnRtnRepealFromFutureToBankByFuture(RspRepealField),
1537    OnRspFromBankToFutureByFuture(ReqTransferField, RspInfoField, i32, bool),
1538    OnRspFromFutureToBankByFuture(ReqTransferField, RspInfoField, i32, bool),
1539    OnRspQueryBankAccountMoneyByFuture(ReqQueryAccountField, RspInfoField, i32, bool),
1540    OnRtnOpenAccountByBank(OpenAccountField),
1541    OnRtnCancelAccountByBank(CancelAccountField),
1542    OnRtnChangeAccountByBank(ChangeAccountField),
1543    OnRspQryClassifiedInstrument(InstrumentField, RspInfoField, i32, bool),
1544    OnRspQryCombPromotionParam(CombPromotionParamField, RspInfoField, i32, bool),
1545    OnRspQryRiskSettleInvstPosition(RiskSettleInvstPositionField, RspInfoField, i32, bool),
1546    OnRspQryRiskSettleProductStatus(RiskSettleProductStatusField, RspInfoField, i32, bool),
1547    OnRspQrySPBMFutureParameter(SPBMFutureParameterField, RspInfoField, i32, bool),
1548    OnRspQrySPBMOptionParameter(SPBMOptionParameterField, RspInfoField, i32, bool),
1549    OnRspQrySPBMIntraParameter(SPBMIntraParameterField, RspInfoField, i32, bool),
1550    OnRspQrySPBMInterParameter(SPBMInterParameterField, RspInfoField, i32, bool),
1551    OnRspQrySPBMPortfDefinition(SPBMPortfDefinitionField, RspInfoField, i32, bool),
1552    OnRspQrySPBMInvestorPortfDef(SPBMInvestorPortfDefField, RspInfoField, i32, bool),
1553    OnRspQryInvestorPortfMarginRatio(InvestorPortfMarginRatioField, RspInfoField, i32, bool),
1554    OnRspQryInvestorProdSPBMDetail(InvestorProdSPBMDetailField, RspInfoField, i32, bool),
1555    OnRspQryInvestorCommoditySPMMMargin(InvestorCommoditySPMMMarginField, RspInfoField, i32, bool),
1556    OnRspQryInvestorCommodityGroupSPMMMargin(InvestorCommodityGroupSPMMMarginField, RspInfoField, i32, bool),
1557    OnRspQrySPMMInstParam(SPMMInstParamField, RspInfoField, i32, bool),
1558    OnRspQrySPMMProductParam(SPMMProductParamField, RspInfoField, i32, bool),
1559    OnRspQrySPBMAddOnInterParameter(SPBMAddOnInterParameterField, RspInfoField, i32, bool),
1560    OnRspQryRCAMSCombProductInfo(RCAMSCombProductInfoField, RspInfoField, i32, bool),
1561    OnRspQryRCAMSInstrParameter(RCAMSInstrParameterField, RspInfoField, i32, bool),
1562    OnRspQryRCAMSIntraParameter(RCAMSIntraParameterField, RspInfoField, i32, bool),
1563    OnRspQryRCAMSInterParameter(RCAMSInterParameterField, RspInfoField, i32, bool),
1564    OnRspQryRCAMSShortOptAdjustParam(RCAMSShortOptAdjustParamField, RspInfoField, i32, bool),
1565    OnRspQryRCAMSInvestorCombPosition(RCAMSInvestorCombPositionField, RspInfoField, i32, bool),
1566    OnRspQryInvestorProdRCAMSMargin(InvestorProdRCAMSMarginField, RspInfoField, i32, bool),
1567    OnRspQryRULEInstrParameter(RULEInstrParameterField, RspInfoField, i32, bool),
1568    OnRspQryRULEIntraParameter(RULEIntraParameterField, RspInfoField, i32, bool),
1569    OnRspQryRULEInterParameter(RULEInterParameterField, RspInfoField, i32, bool),
1570    OnRspQryInvestorProdRULEMargin(InvestorProdRULEMarginField, RspInfoField, i32, bool),
1571    OnRspQryInvestorPortfSetting(InvestorPortfSettingField, RspInfoField, i32, bool),
1572    OnRspQryInvestorInfoCommRec(InvestorInfoCommRecField, RspInfoField, i32, bool),
1573    OnRspQryCombLeg(CombLegField, RspInfoField, i32, bool),
1574    OnRspOffsetSetting(InputOffsetSettingField, RspInfoField, i32, bool),
1575    OnRspCancelOffsetSetting(InputOffsetSettingField, RspInfoField, i32, bool),
1576    OnRtnOffsetSetting(OffsetSettingField),
1577    OnErrRtnOffsetSetting(InputOffsetSettingField, RspInfoField),
1578    OnErrRtnCancelOffsetSetting(CancelOffsetSettingField, RspInfoField),
1579    OnRspQryOffsetSetting(OffsetSettingField, RspInfoField, i32, bool),
1580}
1581
1582pub struct TraderSpi {
1583    tx: Sender<TraderSpiMsg>,
1584}
1585
1586impl TraderSpi {
1587pub fn OnFrontConnected(&self) { self.tx.send(TraderSpiMsg::OnFrontConnected).expect("sending TraderSpiMsg failed"); }
1588pub fn OnFrontDisconnected(&self, nReason: i32) { self.tx.send(TraderSpiMsg::OnFrontDisconnected(nReason)).expect("sending TraderSpiMsg failed"); }
1589pub fn OnHeartBeatWarning(&self, nTimeLapse: i32) { self.tx.send(TraderSpiMsg::OnHeartBeatWarning(nTimeLapse)).expect("sending TraderSpiMsg failed"); }
1590pub fn OnRspAuthenticate(&self, pRspAuthenticateField: RspAuthenticateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspAuthenticate(pRspAuthenticateField, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1591pub fn OnRspUserLogin(&self, pRspUserLogin: RspUserLoginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspUserLogin(pRspUserLogin, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1592pub fn OnRspUserLogout(&self, pUserLogout: UserLogoutField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspUserLogout(pUserLogout, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1593pub fn OnRspUserPasswordUpdate(&self, pUserPasswordUpdate: UserPasswordUpdateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspUserPasswordUpdate(pUserPasswordUpdate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1594pub fn OnRspTradingAccountPasswordUpdate(&self, pTradingAccountPasswordUpdate: TradingAccountPasswordUpdateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspTradingAccountPasswordUpdate(pTradingAccountPasswordUpdate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1595pub fn OnRspUserAuthMethod(&self, pRspUserAuthMethod: RspUserAuthMethodField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspUserAuthMethod(pRspUserAuthMethod, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1596pub fn OnRspGenUserCaptcha(&self, pRspGenUserCaptcha: RspGenUserCaptchaField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspGenUserCaptcha(pRspGenUserCaptcha, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1597pub fn OnRspGenUserText(&self, pRspGenUserText: RspGenUserTextField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspGenUserText(pRspGenUserText, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1598pub fn OnRspOrderInsert(&self, pInputOrder: InputOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspOrderInsert(pInputOrder, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1599pub fn OnRspParkedOrderInsert(&self, pParkedOrder: ParkedOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspParkedOrderInsert(pParkedOrder, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1600pub fn OnRspParkedOrderAction(&self, pParkedOrderAction: ParkedOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspParkedOrderAction(pParkedOrderAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1601pub fn OnRspOrderAction(&self, pInputOrderAction: InputOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspOrderAction(pInputOrderAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1602pub fn OnRspQryMaxOrderVolume(&self, pQryMaxOrderVolume: QryMaxOrderVolumeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryMaxOrderVolume(pQryMaxOrderVolume, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1603pub fn OnRspSettlementInfoConfirm(&self, pSettlementInfoConfirm: SettlementInfoConfirmField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspSettlementInfoConfirm(pSettlementInfoConfirm, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1604pub fn OnRspRemoveParkedOrder(&self, pRemoveParkedOrder: RemoveParkedOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspRemoveParkedOrder(pRemoveParkedOrder, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1605pub fn OnRspRemoveParkedOrderAction(&self, pRemoveParkedOrderAction: RemoveParkedOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspRemoveParkedOrderAction(pRemoveParkedOrderAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1606pub fn OnRspExecOrderInsert(&self, pInputExecOrder: InputExecOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspExecOrderInsert(pInputExecOrder, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1607pub fn OnRspExecOrderAction(&self, pInputExecOrderAction: InputExecOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspExecOrderAction(pInputExecOrderAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1608pub fn OnRspForQuoteInsert(&self, pInputForQuote: InputForQuoteField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspForQuoteInsert(pInputForQuote, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1609pub fn OnRspQuoteInsert(&self, pInputQuote: InputQuoteField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQuoteInsert(pInputQuote, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1610pub fn OnRspQuoteAction(&self, pInputQuoteAction: InputQuoteActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQuoteAction(pInputQuoteAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1611pub fn OnRspBatchOrderAction(&self, pInputBatchOrderAction: InputBatchOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspBatchOrderAction(pInputBatchOrderAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1612pub fn OnRspOptionSelfCloseInsert(&self, pInputOptionSelfClose: InputOptionSelfCloseField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspOptionSelfCloseInsert(pInputOptionSelfClose, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1613pub fn OnRspOptionSelfCloseAction(&self, pInputOptionSelfCloseAction: InputOptionSelfCloseActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspOptionSelfCloseAction(pInputOptionSelfCloseAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1614pub fn OnRspCombActionInsert(&self, pInputCombAction: InputCombActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspCombActionInsert(pInputCombAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1615pub fn OnRspQryOrder(&self, pOrder: OrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryOrder(pOrder, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1616pub fn OnRspQryTrade(&self, pTrade: TradeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTrade(pTrade, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1617pub fn OnRspQryInvestorPosition(&self, pInvestorPosition: InvestorPositionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorPosition(pInvestorPosition, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1618pub fn OnRspQryTradingAccount(&self, pTradingAccount: TradingAccountField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTradingAccount(pTradingAccount, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1619pub fn OnRspQryInvestor(&self, pInvestor: InvestorField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestor(pInvestor, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1620pub fn OnRspQryTradingCode(&self, pTradingCode: TradingCodeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTradingCode(pTradingCode, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1621pub fn OnRspQryInstrumentMarginRate(&self, pInstrumentMarginRate: InstrumentMarginRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInstrumentMarginRate(pInstrumentMarginRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1622pub fn OnRspQryInstrumentCommissionRate(&self, pInstrumentCommissionRate: InstrumentCommissionRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInstrumentCommissionRate(pInstrumentCommissionRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1623pub fn OnRspQryUserSession(&self, pUserSession: UserSessionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryUserSession(pUserSession, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1624pub fn OnRspQryExchange(&self, pExchange: ExchangeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryExchange(pExchange, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1625pub fn OnRspQryProduct(&self, pProduct: ProductField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryProduct(pProduct, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1626pub fn OnRspQryInstrument(&self, pInstrument: InstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInstrument(pInstrument, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1627pub fn OnRspQryDepthMarketData(&self, pDepthMarketData: DepthMarketDataField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryDepthMarketData(pDepthMarketData, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1628pub fn OnRspQryTraderOffer(&self, pTraderOffer: TraderOfferField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTraderOffer(pTraderOffer, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1629pub fn OnRspQrySettlementInfo(&self, pSettlementInfo: SettlementInfoField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySettlementInfo(pSettlementInfo, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1630pub fn OnRspQryTransferBank(&self, pTransferBank: TransferBankField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTransferBank(pTransferBank, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1631pub fn OnRspQryInvestorPositionDetail(&self, pInvestorPositionDetail: InvestorPositionDetailField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorPositionDetail(pInvestorPositionDetail, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1632pub fn OnRspQryNotice(&self, pNotice: NoticeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryNotice(pNotice, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1633pub fn OnRspQrySettlementInfoConfirm(&self, pSettlementInfoConfirm: SettlementInfoConfirmField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySettlementInfoConfirm(pSettlementInfoConfirm, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1634pub fn OnRspQryInvestorPositionCombineDetail(&self, pInvestorPositionCombineDetail: InvestorPositionCombineDetailField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorPositionCombineDetail(pInvestorPositionCombineDetail, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1635pub fn OnRspQryCFMMCTradingAccountKey(&self, pCFMMCTradingAccountKey: CFMMCTradingAccountKeyField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryCFMMCTradingAccountKey(pCFMMCTradingAccountKey, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1636pub fn OnRspQryEWarrantOffset(&self, pEWarrantOffset: EWarrantOffsetField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryEWarrantOffset(pEWarrantOffset, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1637pub fn OnRspQryInvestorProductGroupMargin(&self, pInvestorProductGroupMargin: InvestorProductGroupMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorProductGroupMargin(pInvestorProductGroupMargin, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1638pub fn OnRspQryExchangeMarginRate(&self, pExchangeMarginRate: ExchangeMarginRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryExchangeMarginRate(pExchangeMarginRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1639pub fn OnRspQryExchangeMarginRateAdjust(&self, pExchangeMarginRateAdjust: ExchangeMarginRateAdjustField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryExchangeMarginRateAdjust(pExchangeMarginRateAdjust, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1640pub fn OnRspQryExchangeRate(&self, pExchangeRate: ExchangeRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryExchangeRate(pExchangeRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1641pub fn OnRspQrySecAgentACIDMap(&self, pSecAgentACIDMap: SecAgentACIDMapField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySecAgentACIDMap(pSecAgentACIDMap, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1642pub fn OnRspQryProductExchRate(&self, pProductExchRate: ProductExchRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryProductExchRate(pProductExchRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1643pub fn OnRspQryProductGroup(&self, pProductGroup: ProductGroupField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryProductGroup(pProductGroup, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1644pub fn OnRspQryMMInstrumentCommissionRate(&self, pMMInstrumentCommissionRate: MMInstrumentCommissionRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryMMInstrumentCommissionRate(pMMInstrumentCommissionRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1645pub fn OnRspQryMMOptionInstrCommRate(&self, pMMOptionInstrCommRate: MMOptionInstrCommRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryMMOptionInstrCommRate(pMMOptionInstrCommRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1646pub fn OnRspQryInstrumentOrderCommRate(&self, pInstrumentOrderCommRate: InstrumentOrderCommRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInstrumentOrderCommRate(pInstrumentOrderCommRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1647pub fn OnRspQrySecAgentTradingAccount(&self, pTradingAccount: TradingAccountField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySecAgentTradingAccount(pTradingAccount, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1648pub fn OnRspQrySecAgentCheckMode(&self, pSecAgentCheckMode: SecAgentCheckModeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySecAgentCheckMode(pSecAgentCheckMode, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1649pub fn OnRspQrySecAgentTradeInfo(&self, pSecAgentTradeInfo: SecAgentTradeInfoField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySecAgentTradeInfo(pSecAgentTradeInfo, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1650pub fn OnRspQryOptionInstrTradeCost(&self, pOptionInstrTradeCost: OptionInstrTradeCostField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryOptionInstrTradeCost(pOptionInstrTradeCost, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1651pub fn OnRspQryOptionInstrCommRate(&self, pOptionInstrCommRate: OptionInstrCommRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryOptionInstrCommRate(pOptionInstrCommRate, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1652pub fn OnRspQryExecOrder(&self, pExecOrder: ExecOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryExecOrder(pExecOrder, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1653pub fn OnRspQryForQuote(&self, pForQuote: ForQuoteField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryForQuote(pForQuote, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1654pub fn OnRspQryQuote(&self, pQuote: QuoteField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryQuote(pQuote, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1655pub fn OnRspQryOptionSelfClose(&self, pOptionSelfClose: OptionSelfCloseField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryOptionSelfClose(pOptionSelfClose, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1656pub fn OnRspQryInvestUnit(&self, pInvestUnit: InvestUnitField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestUnit(pInvestUnit, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1657pub fn OnRspQryCombInstrumentGuard(&self, pCombInstrumentGuard: CombInstrumentGuardField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryCombInstrumentGuard(pCombInstrumentGuard, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1658pub fn OnRspQryCombAction(&self, pCombAction: CombActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryCombAction(pCombAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1659pub fn OnRspQryTransferSerial(&self, pTransferSerial: TransferSerialField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTransferSerial(pTransferSerial, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1660pub fn OnRspQryAccountregister(&self, pAccountregister: AccountregisterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryAccountregister(pAccountregister, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1661pub fn OnRspError(&self, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspError(pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1662pub fn OnRtnOrder(&self, pOrder: OrderField) { self.tx.send(TraderSpiMsg::OnRtnOrder(pOrder)).expect("sending TraderSpiMsg failed"); }
1663pub fn OnRtnTrade(&self, pTrade: TradeField) { self.tx.send(TraderSpiMsg::OnRtnTrade(pTrade)).expect("sending TraderSpiMsg failed"); }
1664pub fn OnErrRtnOrderInsert(&self, pInputOrder: InputOrderField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnOrderInsert(pInputOrder, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1665pub fn OnErrRtnOrderAction(&self, pOrderAction: OrderActionField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnOrderAction(pOrderAction, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1666pub fn OnRtnInstrumentStatus(&self, pInstrumentStatus: InstrumentStatusField) { self.tx.send(TraderSpiMsg::OnRtnInstrumentStatus(pInstrumentStatus)).expect("sending TraderSpiMsg failed"); }
1667pub fn OnRtnBulletin(&self, pBulletin: BulletinField) { self.tx.send(TraderSpiMsg::OnRtnBulletin(pBulletin)).expect("sending TraderSpiMsg failed"); }
1668pub fn OnRtnTradingNotice(&self, pTradingNoticeInfo: TradingNoticeInfoField) { self.tx.send(TraderSpiMsg::OnRtnTradingNotice(pTradingNoticeInfo)).expect("sending TraderSpiMsg failed"); }
1669pub fn OnRtnErrorConditionalOrder(&self, pErrorConditionalOrder: ErrorConditionalOrderField) { self.tx.send(TraderSpiMsg::OnRtnErrorConditionalOrder(pErrorConditionalOrder)).expect("sending TraderSpiMsg failed"); }
1670pub fn OnRtnExecOrder(&self, pExecOrder: ExecOrderField) { self.tx.send(TraderSpiMsg::OnRtnExecOrder(pExecOrder)).expect("sending TraderSpiMsg failed"); }
1671pub fn OnErrRtnExecOrderInsert(&self, pInputExecOrder: InputExecOrderField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnExecOrderInsert(pInputExecOrder, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1672pub fn OnErrRtnExecOrderAction(&self, pExecOrderAction: ExecOrderActionField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnExecOrderAction(pExecOrderAction, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1673pub fn OnErrRtnForQuoteInsert(&self, pInputForQuote: InputForQuoteField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnForQuoteInsert(pInputForQuote, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1674pub fn OnRtnQuote(&self, pQuote: QuoteField) { self.tx.send(TraderSpiMsg::OnRtnQuote(pQuote)).expect("sending TraderSpiMsg failed"); }
1675pub fn OnErrRtnQuoteInsert(&self, pInputQuote: InputQuoteField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnQuoteInsert(pInputQuote, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1676pub fn OnErrRtnQuoteAction(&self, pQuoteAction: QuoteActionField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnQuoteAction(pQuoteAction, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1677pub fn OnRtnForQuoteRsp(&self, pForQuoteRsp: ForQuoteRspField) { self.tx.send(TraderSpiMsg::OnRtnForQuoteRsp(pForQuoteRsp)).expect("sending TraderSpiMsg failed"); }
1678pub fn OnRtnCFMMCTradingAccountToken(&self, pCFMMCTradingAccountToken: CFMMCTradingAccountTokenField) { self.tx.send(TraderSpiMsg::OnRtnCFMMCTradingAccountToken(pCFMMCTradingAccountToken)).expect("sending TraderSpiMsg failed"); }
1679pub fn OnErrRtnBatchOrderAction(&self, pBatchOrderAction: BatchOrderActionField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnBatchOrderAction(pBatchOrderAction, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1680pub fn OnRtnOptionSelfClose(&self, pOptionSelfClose: OptionSelfCloseField) { self.tx.send(TraderSpiMsg::OnRtnOptionSelfClose(pOptionSelfClose)).expect("sending TraderSpiMsg failed"); }
1681pub fn OnErrRtnOptionSelfCloseInsert(&self, pInputOptionSelfClose: InputOptionSelfCloseField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnOptionSelfCloseInsert(pInputOptionSelfClose, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1682pub fn OnErrRtnOptionSelfCloseAction(&self, pOptionSelfCloseAction: OptionSelfCloseActionField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnOptionSelfCloseAction(pOptionSelfCloseAction, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1683pub fn OnRtnCombAction(&self, pCombAction: CombActionField) { self.tx.send(TraderSpiMsg::OnRtnCombAction(pCombAction)).expect("sending TraderSpiMsg failed"); }
1684pub fn OnErrRtnCombActionInsert(&self, pInputCombAction: InputCombActionField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnCombActionInsert(pInputCombAction, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1685pub fn OnRspQryContractBank(&self, pContractBank: ContractBankField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryContractBank(pContractBank, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1686pub fn OnRspQryParkedOrder(&self, pParkedOrder: ParkedOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryParkedOrder(pParkedOrder, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1687pub fn OnRspQryParkedOrderAction(&self, pParkedOrderAction: ParkedOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryParkedOrderAction(pParkedOrderAction, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1688pub fn OnRspQryTradingNotice(&self, pTradingNotice: TradingNoticeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTradingNotice(pTradingNotice, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1689pub fn OnRspQryBrokerTradingParams(&self, pBrokerTradingParams: BrokerTradingParamsField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryBrokerTradingParams(pBrokerTradingParams, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1690pub fn OnRspQryBrokerTradingAlgos(&self, pBrokerTradingAlgos: BrokerTradingAlgosField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryBrokerTradingAlgos(pBrokerTradingAlgos, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1691pub fn OnRspQueryCFMMCTradingAccountToken(&self, pQueryCFMMCTradingAccountToken: QueryCFMMCTradingAccountTokenField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQueryCFMMCTradingAccountToken(pQueryCFMMCTradingAccountToken, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1692pub fn OnRtnFromBankToFutureByBank(&self, pRspTransfer: RspTransferField) { self.tx.send(TraderSpiMsg::OnRtnFromBankToFutureByBank(pRspTransfer)).expect("sending TraderSpiMsg failed"); }
1693pub fn OnRtnFromFutureToBankByBank(&self, pRspTransfer: RspTransferField) { self.tx.send(TraderSpiMsg::OnRtnFromFutureToBankByBank(pRspTransfer)).expect("sending TraderSpiMsg failed"); }
1694pub fn OnRtnRepealFromBankToFutureByBank(&self, pRspRepeal: RspRepealField) { self.tx.send(TraderSpiMsg::OnRtnRepealFromBankToFutureByBank(pRspRepeal)).expect("sending TraderSpiMsg failed"); }
1695pub fn OnRtnRepealFromFutureToBankByBank(&self, pRspRepeal: RspRepealField) { self.tx.send(TraderSpiMsg::OnRtnRepealFromFutureToBankByBank(pRspRepeal)).expect("sending TraderSpiMsg failed"); }
1696pub fn OnRtnFromBankToFutureByFuture(&self, pRspTransfer: RspTransferField) { self.tx.send(TraderSpiMsg::OnRtnFromBankToFutureByFuture(pRspTransfer)).expect("sending TraderSpiMsg failed"); }
1697pub fn OnRtnFromFutureToBankByFuture(&self, pRspTransfer: RspTransferField) { self.tx.send(TraderSpiMsg::OnRtnFromFutureToBankByFuture(pRspTransfer)).expect("sending TraderSpiMsg failed"); }
1698pub fn OnRtnRepealFromBankToFutureByFutureManual(&self, pRspRepeal: RspRepealField) { self.tx.send(TraderSpiMsg::OnRtnRepealFromBankToFutureByFutureManual(pRspRepeal)).expect("sending TraderSpiMsg failed"); }
1699pub fn OnRtnRepealFromFutureToBankByFutureManual(&self, pRspRepeal: RspRepealField) { self.tx.send(TraderSpiMsg::OnRtnRepealFromFutureToBankByFutureManual(pRspRepeal)).expect("sending TraderSpiMsg failed"); }
1700pub fn OnRtnQueryBankBalanceByFuture(&self, pNotifyQueryAccount: NotifyQueryAccountField) { self.tx.send(TraderSpiMsg::OnRtnQueryBankBalanceByFuture(pNotifyQueryAccount)).expect("sending TraderSpiMsg failed"); }
1701pub fn OnErrRtnBankToFutureByFuture(&self, pReqTransfer: ReqTransferField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnBankToFutureByFuture(pReqTransfer, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1702pub fn OnErrRtnFutureToBankByFuture(&self, pReqTransfer: ReqTransferField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnFutureToBankByFuture(pReqTransfer, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1703pub fn OnErrRtnRepealBankToFutureByFutureManual(&self, pReqRepeal: ReqRepealField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnRepealBankToFutureByFutureManual(pReqRepeal, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1704pub fn OnErrRtnRepealFutureToBankByFutureManual(&self, pReqRepeal: ReqRepealField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnRepealFutureToBankByFutureManual(pReqRepeal, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1705pub fn OnErrRtnQueryBankBalanceByFuture(&self, pReqQueryAccount: ReqQueryAccountField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnQueryBankBalanceByFuture(pReqQueryAccount, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1706pub fn OnRtnRepealFromBankToFutureByFuture(&self, pRspRepeal: RspRepealField) { self.tx.send(TraderSpiMsg::OnRtnRepealFromBankToFutureByFuture(pRspRepeal)).expect("sending TraderSpiMsg failed"); }
1707pub fn OnRtnRepealFromFutureToBankByFuture(&self, pRspRepeal: RspRepealField) { self.tx.send(TraderSpiMsg::OnRtnRepealFromFutureToBankByFuture(pRspRepeal)).expect("sending TraderSpiMsg failed"); }
1708pub fn OnRspFromBankToFutureByFuture(&self, pReqTransfer: ReqTransferField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspFromBankToFutureByFuture(pReqTransfer, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1709pub fn OnRspFromFutureToBankByFuture(&self, pReqTransfer: ReqTransferField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspFromFutureToBankByFuture(pReqTransfer, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1710pub fn OnRspQueryBankAccountMoneyByFuture(&self, pReqQueryAccount: ReqQueryAccountField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQueryBankAccountMoneyByFuture(pReqQueryAccount, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1711pub fn OnRtnOpenAccountByBank(&self, pOpenAccount: OpenAccountField) { self.tx.send(TraderSpiMsg::OnRtnOpenAccountByBank(pOpenAccount)).expect("sending TraderSpiMsg failed"); }
1712pub fn OnRtnCancelAccountByBank(&self, pCancelAccount: CancelAccountField) { self.tx.send(TraderSpiMsg::OnRtnCancelAccountByBank(pCancelAccount)).expect("sending TraderSpiMsg failed"); }
1713pub fn OnRtnChangeAccountByBank(&self, pChangeAccount: ChangeAccountField) { self.tx.send(TraderSpiMsg::OnRtnChangeAccountByBank(pChangeAccount)).expect("sending TraderSpiMsg failed"); }
1714pub fn OnRspQryClassifiedInstrument(&self, pInstrument: InstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryClassifiedInstrument(pInstrument, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1715pub fn OnRspQryCombPromotionParam(&self, pCombPromotionParam: CombPromotionParamField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryCombPromotionParam(pCombPromotionParam, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1716pub fn OnRspQryRiskSettleInvstPosition(&self, pRiskSettleInvstPosition: RiskSettleInvstPositionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRiskSettleInvstPosition(pRiskSettleInvstPosition, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1717pub fn OnRspQryRiskSettleProductStatus(&self, pRiskSettleProductStatus: RiskSettleProductStatusField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRiskSettleProductStatus(pRiskSettleProductStatus, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1718pub fn OnRspQrySPBMFutureParameter(&self, pSPBMFutureParameter: SPBMFutureParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPBMFutureParameter(pSPBMFutureParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1719pub fn OnRspQrySPBMOptionParameter(&self, pSPBMOptionParameter: SPBMOptionParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPBMOptionParameter(pSPBMOptionParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1720pub fn OnRspQrySPBMIntraParameter(&self, pSPBMIntraParameter: SPBMIntraParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPBMIntraParameter(pSPBMIntraParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1721pub fn OnRspQrySPBMInterParameter(&self, pSPBMInterParameter: SPBMInterParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPBMInterParameter(pSPBMInterParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1722pub fn OnRspQrySPBMPortfDefinition(&self, pSPBMPortfDefinition: SPBMPortfDefinitionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPBMPortfDefinition(pSPBMPortfDefinition, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1723pub fn OnRspQrySPBMInvestorPortfDef(&self, pSPBMInvestorPortfDef: SPBMInvestorPortfDefField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPBMInvestorPortfDef(pSPBMInvestorPortfDef, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1724pub fn OnRspQryInvestorPortfMarginRatio(&self, pInvestorPortfMarginRatio: InvestorPortfMarginRatioField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorPortfMarginRatio(pInvestorPortfMarginRatio, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1725pub fn OnRspQryInvestorProdSPBMDetail(&self, pInvestorProdSPBMDetail: InvestorProdSPBMDetailField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorProdSPBMDetail(pInvestorProdSPBMDetail, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1726pub fn OnRspQryInvestorCommoditySPMMMargin(&self, pInvestorCommoditySPMMMargin: InvestorCommoditySPMMMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorCommoditySPMMMargin(pInvestorCommoditySPMMMargin, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1727pub fn OnRspQryInvestorCommodityGroupSPMMMargin(&self, pInvestorCommodityGroupSPMMMargin: InvestorCommodityGroupSPMMMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorCommodityGroupSPMMMargin(pInvestorCommodityGroupSPMMMargin, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1728pub fn OnRspQrySPMMInstParam(&self, pSPMMInstParam: SPMMInstParamField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPMMInstParam(pSPMMInstParam, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1729pub fn OnRspQrySPMMProductParam(&self, pSPMMProductParam: SPMMProductParamField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPMMProductParam(pSPMMProductParam, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1730pub fn OnRspQrySPBMAddOnInterParameter(&self, pSPBMAddOnInterParameter: SPBMAddOnInterParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySPBMAddOnInterParameter(pSPBMAddOnInterParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1731pub fn OnRspQryRCAMSCombProductInfo(&self, pRCAMSCombProductInfo: RCAMSCombProductInfoField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRCAMSCombProductInfo(pRCAMSCombProductInfo, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1732pub fn OnRspQryRCAMSInstrParameter(&self, pRCAMSInstrParameter: RCAMSInstrParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRCAMSInstrParameter(pRCAMSInstrParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1733pub fn OnRspQryRCAMSIntraParameter(&self, pRCAMSIntraParameter: RCAMSIntraParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRCAMSIntraParameter(pRCAMSIntraParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1734pub fn OnRspQryRCAMSInterParameter(&self, pRCAMSInterParameter: RCAMSInterParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRCAMSInterParameter(pRCAMSInterParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1735pub fn OnRspQryRCAMSShortOptAdjustParam(&self, pRCAMSShortOptAdjustParam: RCAMSShortOptAdjustParamField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRCAMSShortOptAdjustParam(pRCAMSShortOptAdjustParam, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1736pub fn OnRspQryRCAMSInvestorCombPosition(&self, pRCAMSInvestorCombPosition: RCAMSInvestorCombPositionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRCAMSInvestorCombPosition(pRCAMSInvestorCombPosition, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1737pub fn OnRspQryInvestorProdRCAMSMargin(&self, pInvestorProdRCAMSMargin: InvestorProdRCAMSMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorProdRCAMSMargin(pInvestorProdRCAMSMargin, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1738pub fn OnRspQryRULEInstrParameter(&self, pRULEInstrParameter: RULEInstrParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRULEInstrParameter(pRULEInstrParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1739pub fn OnRspQryRULEIntraParameter(&self, pRULEIntraParameter: RULEIntraParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRULEIntraParameter(pRULEIntraParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1740pub fn OnRspQryRULEInterParameter(&self, pRULEInterParameter: RULEInterParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRULEInterParameter(pRULEInterParameter, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1741pub fn OnRspQryInvestorProdRULEMargin(&self, pInvestorProdRULEMargin: InvestorProdRULEMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorProdRULEMargin(pInvestorProdRULEMargin, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1742pub fn OnRspQryInvestorPortfSetting(&self, pInvestorPortfSetting: InvestorPortfSettingField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorPortfSetting(pInvestorPortfSetting, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1743pub fn OnRspQryInvestorInfoCommRec(&self, pInvestorInfoCommRec: InvestorInfoCommRecField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorInfoCommRec(pInvestorInfoCommRec, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1744pub fn OnRspQryCombLeg(&self, pCombLeg: CombLegField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryCombLeg(pCombLeg, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1745pub fn OnRspOffsetSetting(&self, pInputOffsetSetting: InputOffsetSettingField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspOffsetSetting(pInputOffsetSetting, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1746pub fn OnRspCancelOffsetSetting(&self, pInputOffsetSetting: InputOffsetSettingField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspCancelOffsetSetting(pInputOffsetSetting, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1747pub fn OnRtnOffsetSetting(&self, pOffsetSetting: OffsetSettingField) { self.tx.send(TraderSpiMsg::OnRtnOffsetSetting(pOffsetSetting)).expect("sending TraderSpiMsg failed"); }
1748pub fn OnErrRtnOffsetSetting(&self, pInputOffsetSetting: InputOffsetSettingField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnOffsetSetting(pInputOffsetSetting, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1749pub fn OnErrRtnCancelOffsetSetting(&self, pCancelOffsetSetting: CancelOffsetSettingField, pRspInfo: RspInfoField) { self.tx.send(TraderSpiMsg::OnErrRtnCancelOffsetSetting(pCancelOffsetSetting, pRspInfo)).expect("sending TraderSpiMsg failed"); }
1750pub fn OnRspQryOffsetSetting(&self, pOffsetSetting: OffsetSettingField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryOffsetSetting(pOffsetSetting, pRspInfo, nRequestID, bIsLast)).expect("sending TraderSpiMsg failed"); }
1751}
1752
1753#[cxx::bridge]
1754mod ffi {
1755    extern "Rust" {
1756        type MdSpi;
1757
1758        pub fn OnFrontConnected(&self);
1759        pub fn OnFrontDisconnected(&self, nReason: i32);
1760        pub fn OnHeartBeatWarning(&self, nTimeLapse: i32);
1761        pub fn OnRspUserLogin(&self, pRspUserLogin: RspUserLoginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1762        pub fn OnRspUserLogout(&self, pUserLogout: UserLogoutField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1763        pub fn OnRspQryMulticastInstrument(&self, pMulticastInstrument: MulticastInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1764        pub fn OnRspError(&self, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1765        pub fn OnRspSubMarketData(&self, pSpecificInstrument: SpecificInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1766        pub fn OnRspUnSubMarketData(&self, pSpecificInstrument: SpecificInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1767        pub fn OnRspSubForQuoteRsp(&self, pSpecificInstrument: SpecificInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1768        pub fn OnRspUnSubForQuoteRsp(&self, pSpecificInstrument: SpecificInstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1769        pub fn OnRtnDepthMarketData(&self, pDepthMarketData: DepthMarketDataField);
1770        pub fn OnRtnForQuoteRsp(&self, pForQuoteRsp: ForQuoteRspField);
1771    }
1772
1773    unsafe extern "C++" {
1774        include!("ctp-rs/wrapper/include/MdApi.h");
1775        type MdApi;
1776
1777        fn CreateMdApi(spi: &MdSpi, flow_path: String, is_using_udp: bool, is_multicast: bool, is_production_mode: bool) -> UniquePtr<MdApi>;
1778
1779        fn GetApiVersion(&self)-> String;
1780        fn Init(&self);
1781        fn Join(&self)-> i32;
1782        fn GetTradingDay(&self)-> String;
1783        fn RegisterFront(&self, pszFrontAddress: String);
1784        fn RegisterNameServer(&self, pszNsAddress: String);
1785        fn RegisterFensUserInfo(&self, pFensUserInfo: FensUserInfoField);
1786        fn SubscribeMarketData(&self, ppInstrumentID: Vec<String>, nCount: i32)-> i32;
1787        fn UnSubscribeMarketData(&self, ppInstrumentID: Vec<String>, nCount: i32)-> i32;
1788        fn SubscribeForQuoteRsp(&self, ppInstrumentID: Vec<String>, nCount: i32)-> i32;
1789        fn UnSubscribeForQuoteRsp(&self, ppInstrumentID: Vec<String>, nCount: i32)-> i32;
1790        fn ReqUserLogin(&self, pReqUserLoginField: ReqUserLoginField, nRequestID: i32)-> i32;
1791        fn ReqUserLogout(&self, pUserLogout: UserLogoutField, nRequestID: i32)-> i32;
1792        fn ReqQryMulticastInstrument(&self, pQryMulticastInstrument: QryMulticastInstrumentField, nRequestID: i32)-> i32;
1793    }
1794
1795    extern "Rust" {
1796        type TraderSpi;
1797
1798        pub fn OnFrontConnected(&self);
1799        pub fn OnFrontDisconnected(&self, nReason: i32);
1800        pub fn OnHeartBeatWarning(&self, nTimeLapse: i32);
1801        pub fn OnRspAuthenticate(&self, pRspAuthenticateField: RspAuthenticateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1802        pub fn OnRspUserLogin(&self, pRspUserLogin: RspUserLoginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1803        pub fn OnRspUserLogout(&self, pUserLogout: UserLogoutField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1804        pub fn OnRspUserPasswordUpdate(&self, pUserPasswordUpdate: UserPasswordUpdateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1805        pub fn OnRspTradingAccountPasswordUpdate(&self, pTradingAccountPasswordUpdate: TradingAccountPasswordUpdateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1806        pub fn OnRspUserAuthMethod(&self, pRspUserAuthMethod: RspUserAuthMethodField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1807        pub fn OnRspGenUserCaptcha(&self, pRspGenUserCaptcha: RspGenUserCaptchaField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1808        pub fn OnRspGenUserText(&self, pRspGenUserText: RspGenUserTextField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1809        pub fn OnRspOrderInsert(&self, pInputOrder: InputOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1810        pub fn OnRspParkedOrderInsert(&self, pParkedOrder: ParkedOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1811        pub fn OnRspParkedOrderAction(&self, pParkedOrderAction: ParkedOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1812        pub fn OnRspOrderAction(&self, pInputOrderAction: InputOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1813        pub fn OnRspQryMaxOrderVolume(&self, pQryMaxOrderVolume: QryMaxOrderVolumeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1814        pub fn OnRspSettlementInfoConfirm(&self, pSettlementInfoConfirm: SettlementInfoConfirmField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1815        pub fn OnRspRemoveParkedOrder(&self, pRemoveParkedOrder: RemoveParkedOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1816        pub fn OnRspRemoveParkedOrderAction(&self, pRemoveParkedOrderAction: RemoveParkedOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1817        pub fn OnRspExecOrderInsert(&self, pInputExecOrder: InputExecOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1818        pub fn OnRspExecOrderAction(&self, pInputExecOrderAction: InputExecOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1819        pub fn OnRspForQuoteInsert(&self, pInputForQuote: InputForQuoteField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1820        pub fn OnRspQuoteInsert(&self, pInputQuote: InputQuoteField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1821        pub fn OnRspQuoteAction(&self, pInputQuoteAction: InputQuoteActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1822        pub fn OnRspBatchOrderAction(&self, pInputBatchOrderAction: InputBatchOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1823        pub fn OnRspOptionSelfCloseInsert(&self, pInputOptionSelfClose: InputOptionSelfCloseField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1824        pub fn OnRspOptionSelfCloseAction(&self, pInputOptionSelfCloseAction: InputOptionSelfCloseActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1825        pub fn OnRspCombActionInsert(&self, pInputCombAction: InputCombActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1826        pub fn OnRspQryOrder(&self, pOrder: OrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1827        pub fn OnRspQryTrade(&self, pTrade: TradeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1828        pub fn OnRspQryInvestorPosition(&self, pInvestorPosition: InvestorPositionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1829        pub fn OnRspQryTradingAccount(&self, pTradingAccount: TradingAccountField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1830        pub fn OnRspQryInvestor(&self, pInvestor: InvestorField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1831        pub fn OnRspQryTradingCode(&self, pTradingCode: TradingCodeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1832        pub fn OnRspQryInstrumentMarginRate(&self, pInstrumentMarginRate: InstrumentMarginRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1833        pub fn OnRspQryInstrumentCommissionRate(&self, pInstrumentCommissionRate: InstrumentCommissionRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1834        pub fn OnRspQryUserSession(&self, pUserSession: UserSessionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1835        pub fn OnRspQryExchange(&self, pExchange: ExchangeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1836        pub fn OnRspQryProduct(&self, pProduct: ProductField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1837        pub fn OnRspQryInstrument(&self, pInstrument: InstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1838        pub fn OnRspQryDepthMarketData(&self, pDepthMarketData: DepthMarketDataField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1839        pub fn OnRspQryTraderOffer(&self, pTraderOffer: TraderOfferField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1840        pub fn OnRspQrySettlementInfo(&self, pSettlementInfo: SettlementInfoField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1841        pub fn OnRspQryTransferBank(&self, pTransferBank: TransferBankField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1842        pub fn OnRspQryInvestorPositionDetail(&self, pInvestorPositionDetail: InvestorPositionDetailField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1843        pub fn OnRspQryNotice(&self, pNotice: NoticeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1844        pub fn OnRspQrySettlementInfoConfirm(&self, pSettlementInfoConfirm: SettlementInfoConfirmField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1845        pub fn OnRspQryInvestorPositionCombineDetail(&self, pInvestorPositionCombineDetail: InvestorPositionCombineDetailField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1846        pub fn OnRspQryCFMMCTradingAccountKey(&self, pCFMMCTradingAccountKey: CFMMCTradingAccountKeyField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1847        pub fn OnRspQryEWarrantOffset(&self, pEWarrantOffset: EWarrantOffsetField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1848        pub fn OnRspQryInvestorProductGroupMargin(&self, pInvestorProductGroupMargin: InvestorProductGroupMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1849        pub fn OnRspQryExchangeMarginRate(&self, pExchangeMarginRate: ExchangeMarginRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1850        pub fn OnRspQryExchangeMarginRateAdjust(&self, pExchangeMarginRateAdjust: ExchangeMarginRateAdjustField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1851        pub fn OnRspQryExchangeRate(&self, pExchangeRate: ExchangeRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1852        pub fn OnRspQrySecAgentACIDMap(&self, pSecAgentACIDMap: SecAgentACIDMapField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1853        pub fn OnRspQryProductExchRate(&self, pProductExchRate: ProductExchRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1854        pub fn OnRspQryProductGroup(&self, pProductGroup: ProductGroupField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1855        pub fn OnRspQryMMInstrumentCommissionRate(&self, pMMInstrumentCommissionRate: MMInstrumentCommissionRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1856        pub fn OnRspQryMMOptionInstrCommRate(&self, pMMOptionInstrCommRate: MMOptionInstrCommRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1857        pub fn OnRspQryInstrumentOrderCommRate(&self, pInstrumentOrderCommRate: InstrumentOrderCommRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1858        pub fn OnRspQrySecAgentTradingAccount(&self, pTradingAccount: TradingAccountField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1859        pub fn OnRspQrySecAgentCheckMode(&self, pSecAgentCheckMode: SecAgentCheckModeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1860        pub fn OnRspQrySecAgentTradeInfo(&self, pSecAgentTradeInfo: SecAgentTradeInfoField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1861        pub fn OnRspQryOptionInstrTradeCost(&self, pOptionInstrTradeCost: OptionInstrTradeCostField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1862        pub fn OnRspQryOptionInstrCommRate(&self, pOptionInstrCommRate: OptionInstrCommRateField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1863        pub fn OnRspQryExecOrder(&self, pExecOrder: ExecOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1864        pub fn OnRspQryForQuote(&self, pForQuote: ForQuoteField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1865        pub fn OnRspQryQuote(&self, pQuote: QuoteField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1866        pub fn OnRspQryOptionSelfClose(&self, pOptionSelfClose: OptionSelfCloseField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1867        pub fn OnRspQryInvestUnit(&self, pInvestUnit: InvestUnitField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1868        pub fn OnRspQryCombInstrumentGuard(&self, pCombInstrumentGuard: CombInstrumentGuardField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1869        pub fn OnRspQryCombAction(&self, pCombAction: CombActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1870        pub fn OnRspQryTransferSerial(&self, pTransferSerial: TransferSerialField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1871        pub fn OnRspQryAccountregister(&self, pAccountregister: AccountregisterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1872        pub fn OnRspError(&self, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1873        pub fn OnRtnOrder(&self, pOrder: OrderField);
1874        pub fn OnRtnTrade(&self, pTrade: TradeField);
1875        pub fn OnErrRtnOrderInsert(&self, pInputOrder: InputOrderField, pRspInfo: RspInfoField);
1876        pub fn OnErrRtnOrderAction(&self, pOrderAction: OrderActionField, pRspInfo: RspInfoField);
1877        pub fn OnRtnInstrumentStatus(&self, pInstrumentStatus: InstrumentStatusField);
1878        pub fn OnRtnBulletin(&self, pBulletin: BulletinField);
1879        pub fn OnRtnTradingNotice(&self, pTradingNoticeInfo: TradingNoticeInfoField);
1880        pub fn OnRtnErrorConditionalOrder(&self, pErrorConditionalOrder: ErrorConditionalOrderField);
1881        pub fn OnRtnExecOrder(&self, pExecOrder: ExecOrderField);
1882        pub fn OnErrRtnExecOrderInsert(&self, pInputExecOrder: InputExecOrderField, pRspInfo: RspInfoField);
1883        pub fn OnErrRtnExecOrderAction(&self, pExecOrderAction: ExecOrderActionField, pRspInfo: RspInfoField);
1884        pub fn OnErrRtnForQuoteInsert(&self, pInputForQuote: InputForQuoteField, pRspInfo: RspInfoField);
1885        pub fn OnRtnQuote(&self, pQuote: QuoteField);
1886        pub fn OnErrRtnQuoteInsert(&self, pInputQuote: InputQuoteField, pRspInfo: RspInfoField);
1887        pub fn OnErrRtnQuoteAction(&self, pQuoteAction: QuoteActionField, pRspInfo: RspInfoField);
1888        pub fn OnRtnForQuoteRsp(&self, pForQuoteRsp: ForQuoteRspField);
1889        pub fn OnRtnCFMMCTradingAccountToken(&self, pCFMMCTradingAccountToken: CFMMCTradingAccountTokenField);
1890        pub fn OnErrRtnBatchOrderAction(&self, pBatchOrderAction: BatchOrderActionField, pRspInfo: RspInfoField);
1891        pub fn OnRtnOptionSelfClose(&self, pOptionSelfClose: OptionSelfCloseField);
1892        pub fn OnErrRtnOptionSelfCloseInsert(&self, pInputOptionSelfClose: InputOptionSelfCloseField, pRspInfo: RspInfoField);
1893        pub fn OnErrRtnOptionSelfCloseAction(&self, pOptionSelfCloseAction: OptionSelfCloseActionField, pRspInfo: RspInfoField);
1894        pub fn OnRtnCombAction(&self, pCombAction: CombActionField);
1895        pub fn OnErrRtnCombActionInsert(&self, pInputCombAction: InputCombActionField, pRspInfo: RspInfoField);
1896        pub fn OnRspQryContractBank(&self, pContractBank: ContractBankField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1897        pub fn OnRspQryParkedOrder(&self, pParkedOrder: ParkedOrderField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1898        pub fn OnRspQryParkedOrderAction(&self, pParkedOrderAction: ParkedOrderActionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1899        pub fn OnRspQryTradingNotice(&self, pTradingNotice: TradingNoticeField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1900        pub fn OnRspQryBrokerTradingParams(&self, pBrokerTradingParams: BrokerTradingParamsField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1901        pub fn OnRspQryBrokerTradingAlgos(&self, pBrokerTradingAlgos: BrokerTradingAlgosField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1902        pub fn OnRspQueryCFMMCTradingAccountToken(&self, pQueryCFMMCTradingAccountToken: QueryCFMMCTradingAccountTokenField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1903        pub fn OnRtnFromBankToFutureByBank(&self, pRspTransfer: RspTransferField);
1904        pub fn OnRtnFromFutureToBankByBank(&self, pRspTransfer: RspTransferField);
1905        pub fn OnRtnRepealFromBankToFutureByBank(&self, pRspRepeal: RspRepealField);
1906        pub fn OnRtnRepealFromFutureToBankByBank(&self, pRspRepeal: RspRepealField);
1907        pub fn OnRtnFromBankToFutureByFuture(&self, pRspTransfer: RspTransferField);
1908        pub fn OnRtnFromFutureToBankByFuture(&self, pRspTransfer: RspTransferField);
1909        pub fn OnRtnRepealFromBankToFutureByFutureManual(&self, pRspRepeal: RspRepealField);
1910        pub fn OnRtnRepealFromFutureToBankByFutureManual(&self, pRspRepeal: RspRepealField);
1911        pub fn OnRtnQueryBankBalanceByFuture(&self, pNotifyQueryAccount: NotifyQueryAccountField);
1912        pub fn OnErrRtnBankToFutureByFuture(&self, pReqTransfer: ReqTransferField, pRspInfo: RspInfoField);
1913        pub fn OnErrRtnFutureToBankByFuture(&self, pReqTransfer: ReqTransferField, pRspInfo: RspInfoField);
1914        pub fn OnErrRtnRepealBankToFutureByFutureManual(&self, pReqRepeal: ReqRepealField, pRspInfo: RspInfoField);
1915        pub fn OnErrRtnRepealFutureToBankByFutureManual(&self, pReqRepeal: ReqRepealField, pRspInfo: RspInfoField);
1916        pub fn OnErrRtnQueryBankBalanceByFuture(&self, pReqQueryAccount: ReqQueryAccountField, pRspInfo: RspInfoField);
1917        pub fn OnRtnRepealFromBankToFutureByFuture(&self, pRspRepeal: RspRepealField);
1918        pub fn OnRtnRepealFromFutureToBankByFuture(&self, pRspRepeal: RspRepealField);
1919        pub fn OnRspFromBankToFutureByFuture(&self, pReqTransfer: ReqTransferField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1920        pub fn OnRspFromFutureToBankByFuture(&self, pReqTransfer: ReqTransferField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1921        pub fn OnRspQueryBankAccountMoneyByFuture(&self, pReqQueryAccount: ReqQueryAccountField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1922        pub fn OnRtnOpenAccountByBank(&self, pOpenAccount: OpenAccountField);
1923        pub fn OnRtnCancelAccountByBank(&self, pCancelAccount: CancelAccountField);
1924        pub fn OnRtnChangeAccountByBank(&self, pChangeAccount: ChangeAccountField);
1925        pub fn OnRspQryClassifiedInstrument(&self, pInstrument: InstrumentField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1926        pub fn OnRspQryCombPromotionParam(&self, pCombPromotionParam: CombPromotionParamField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1927        pub fn OnRspQryRiskSettleInvstPosition(&self, pRiskSettleInvstPosition: RiskSettleInvstPositionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1928        pub fn OnRspQryRiskSettleProductStatus(&self, pRiskSettleProductStatus: RiskSettleProductStatusField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1929        pub fn OnRspQrySPBMFutureParameter(&self, pSPBMFutureParameter: SPBMFutureParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1930        pub fn OnRspQrySPBMOptionParameter(&self, pSPBMOptionParameter: SPBMOptionParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1931        pub fn OnRspQrySPBMIntraParameter(&self, pSPBMIntraParameter: SPBMIntraParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1932        pub fn OnRspQrySPBMInterParameter(&self, pSPBMInterParameter: SPBMInterParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1933        pub fn OnRspQrySPBMPortfDefinition(&self, pSPBMPortfDefinition: SPBMPortfDefinitionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1934        pub fn OnRspQrySPBMInvestorPortfDef(&self, pSPBMInvestorPortfDef: SPBMInvestorPortfDefField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1935        pub fn OnRspQryInvestorPortfMarginRatio(&self, pInvestorPortfMarginRatio: InvestorPortfMarginRatioField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1936        pub fn OnRspQryInvestorProdSPBMDetail(&self, pInvestorProdSPBMDetail: InvestorProdSPBMDetailField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1937        pub fn OnRspQryInvestorCommoditySPMMMargin(&self, pInvestorCommoditySPMMMargin: InvestorCommoditySPMMMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1938        pub fn OnRspQryInvestorCommodityGroupSPMMMargin(&self, pInvestorCommodityGroupSPMMMargin: InvestorCommodityGroupSPMMMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1939        pub fn OnRspQrySPMMInstParam(&self, pSPMMInstParam: SPMMInstParamField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1940        pub fn OnRspQrySPMMProductParam(&self, pSPMMProductParam: SPMMProductParamField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1941        pub fn OnRspQrySPBMAddOnInterParameter(&self, pSPBMAddOnInterParameter: SPBMAddOnInterParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1942        pub fn OnRspQryRCAMSCombProductInfo(&self, pRCAMSCombProductInfo: RCAMSCombProductInfoField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1943        pub fn OnRspQryRCAMSInstrParameter(&self, pRCAMSInstrParameter: RCAMSInstrParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1944        pub fn OnRspQryRCAMSIntraParameter(&self, pRCAMSIntraParameter: RCAMSIntraParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1945        pub fn OnRspQryRCAMSInterParameter(&self, pRCAMSInterParameter: RCAMSInterParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1946        pub fn OnRspQryRCAMSShortOptAdjustParam(&self, pRCAMSShortOptAdjustParam: RCAMSShortOptAdjustParamField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1947        pub fn OnRspQryRCAMSInvestorCombPosition(&self, pRCAMSInvestorCombPosition: RCAMSInvestorCombPositionField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1948        pub fn OnRspQryInvestorProdRCAMSMargin(&self, pInvestorProdRCAMSMargin: InvestorProdRCAMSMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1949        pub fn OnRspQryRULEInstrParameter(&self, pRULEInstrParameter: RULEInstrParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1950        pub fn OnRspQryRULEIntraParameter(&self, pRULEIntraParameter: RULEIntraParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1951        pub fn OnRspQryRULEInterParameter(&self, pRULEInterParameter: RULEInterParameterField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1952        pub fn OnRspQryInvestorProdRULEMargin(&self, pInvestorProdRULEMargin: InvestorProdRULEMarginField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1953        pub fn OnRspQryInvestorPortfSetting(&self, pInvestorPortfSetting: InvestorPortfSettingField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1954        pub fn OnRspQryInvestorInfoCommRec(&self, pInvestorInfoCommRec: InvestorInfoCommRecField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1955        pub fn OnRspQryCombLeg(&self, pCombLeg: CombLegField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1956        pub fn OnRspOffsetSetting(&self, pInputOffsetSetting: InputOffsetSettingField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1957        pub fn OnRspCancelOffsetSetting(&self, pInputOffsetSetting: InputOffsetSettingField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1958        pub fn OnRtnOffsetSetting(&self, pOffsetSetting: OffsetSettingField);
1959        pub fn OnErrRtnOffsetSetting(&self, pInputOffsetSetting: InputOffsetSettingField, pRspInfo: RspInfoField);
1960        pub fn OnErrRtnCancelOffsetSetting(&self, pCancelOffsetSetting: CancelOffsetSettingField, pRspInfo: RspInfoField);
1961        pub fn OnRspQryOffsetSetting(&self, pOffsetSetting: OffsetSettingField, pRspInfo: RspInfoField, nRequestID: i32, bIsLast: bool);
1962    }
1963
1964    unsafe extern "C++" {
1965        include!("ctp-rs/wrapper/include/TraderApi.h");
1966        type TraderApi;
1967
1968        fn CreateTraderApi(spi: &TraderSpi, flow_path: String, is_production_mode: bool) -> UniquePtr<TraderApi>;
1969        fn GetFrontInfo(&self) -> FrontInfoField;
1970
1971        fn GetApiVersion(&self)-> String;
1972        fn Init(&self);
1973        fn Join(&self)-> i32;
1974        fn GetTradingDay(&self)-> String;
1975        fn RegisterFront(&self, pszFrontAddress: String);
1976        fn RegisterNameServer(&self, pszNsAddress: String);
1977        fn RegisterFensUserInfo(&self, pFensUserInfo: FensUserInfoField);
1978        fn SubscribePrivateTopic(&self, nResumeType: i32);
1979        fn SubscribePublicTopic(&self, nResumeType: i32);
1980        fn ReqAuthenticate(&self, pReqAuthenticateField: ReqAuthenticateField, nRequestID: i32)-> i32;
1981        fn RegisterUserSystemInfo(&self, pUserSystemInfo: UserSystemInfoField)-> i32;
1982        fn SubmitUserSystemInfo(&self, pUserSystemInfo: UserSystemInfoField)-> i32;
1983        fn RegisterWechatUserSystemInfo(&self, pUserSystemInfo: WechatUserSystemInfoField)-> i32;
1984        fn SubmitWechatUserSystemInfo(&self, pUserSystemInfo: WechatUserSystemInfoField)-> i32;
1985        fn ReqUserLogin(&self, pReqUserLoginField: ReqUserLoginField, nRequestID: i32)-> i32;
1986        fn ReqUserLogout(&self, pUserLogout: UserLogoutField, nRequestID: i32)-> i32;
1987        fn ReqUserPasswordUpdate(&self, pUserPasswordUpdate: UserPasswordUpdateField, nRequestID: i32)-> i32;
1988        fn ReqTradingAccountPasswordUpdate(&self, pTradingAccountPasswordUpdate: TradingAccountPasswordUpdateField, nRequestID: i32)-> i32;
1989        fn ReqUserAuthMethod(&self, pReqUserAuthMethod: ReqUserAuthMethodField, nRequestID: i32)-> i32;
1990        fn ReqGenUserCaptcha(&self, pReqGenUserCaptcha: ReqGenUserCaptchaField, nRequestID: i32)-> i32;
1991        fn ReqGenUserText(&self, pReqGenUserText: ReqGenUserTextField, nRequestID: i32)-> i32;
1992        fn ReqUserLoginWithCaptcha(&self, pReqUserLoginWithCaptcha: ReqUserLoginWithCaptchaField, nRequestID: i32)-> i32;
1993        fn ReqUserLoginWithText(&self, pReqUserLoginWithText: ReqUserLoginWithTextField, nRequestID: i32)-> i32;
1994        fn ReqUserLoginWithOTP(&self, pReqUserLoginWithOTP: ReqUserLoginWithOTPField, nRequestID: i32)-> i32;
1995        fn ReqOrderInsert(&self, pInputOrder: InputOrderField, nRequestID: i32)-> i32;
1996        fn ReqParkedOrderInsert(&self, pParkedOrder: ParkedOrderField, nRequestID: i32)-> i32;
1997        fn ReqParkedOrderAction(&self, pParkedOrderAction: ParkedOrderActionField, nRequestID: i32)-> i32;
1998        fn ReqOrderAction(&self, pInputOrderAction: InputOrderActionField, nRequestID: i32)-> i32;
1999        fn ReqQryMaxOrderVolume(&self, pQryMaxOrderVolume: QryMaxOrderVolumeField, nRequestID: i32)-> i32;
2000        fn ReqSettlementInfoConfirm(&self, pSettlementInfoConfirm: SettlementInfoConfirmField, nRequestID: i32)-> i32;
2001        fn ReqRemoveParkedOrder(&self, pRemoveParkedOrder: RemoveParkedOrderField, nRequestID: i32)-> i32;
2002        fn ReqRemoveParkedOrderAction(&self, pRemoveParkedOrderAction: RemoveParkedOrderActionField, nRequestID: i32)-> i32;
2003        fn ReqExecOrderInsert(&self, pInputExecOrder: InputExecOrderField, nRequestID: i32)-> i32;
2004        fn ReqExecOrderAction(&self, pInputExecOrderAction: InputExecOrderActionField, nRequestID: i32)-> i32;
2005        fn ReqForQuoteInsert(&self, pInputForQuote: InputForQuoteField, nRequestID: i32)-> i32;
2006        fn ReqQuoteInsert(&self, pInputQuote: InputQuoteField, nRequestID: i32)-> i32;
2007        fn ReqQuoteAction(&self, pInputQuoteAction: InputQuoteActionField, nRequestID: i32)-> i32;
2008        fn ReqBatchOrderAction(&self, pInputBatchOrderAction: InputBatchOrderActionField, nRequestID: i32)-> i32;
2009        fn ReqOptionSelfCloseInsert(&self, pInputOptionSelfClose: InputOptionSelfCloseField, nRequestID: i32)-> i32;
2010        fn ReqOptionSelfCloseAction(&self, pInputOptionSelfCloseAction: InputOptionSelfCloseActionField, nRequestID: i32)-> i32;
2011        fn ReqCombActionInsert(&self, pInputCombAction: InputCombActionField, nRequestID: i32)-> i32;
2012        fn ReqQryOrder(&self, pQryOrder: QryOrderField, nRequestID: i32)-> i32;
2013        fn ReqQryTrade(&self, pQryTrade: QryTradeField, nRequestID: i32)-> i32;
2014        fn ReqQryInvestorPosition(&self, pQryInvestorPosition: QryInvestorPositionField, nRequestID: i32)-> i32;
2015        fn ReqQryTradingAccount(&self, pQryTradingAccount: QryTradingAccountField, nRequestID: i32)-> i32;
2016        fn ReqQryInvestor(&self, pQryInvestor: QryInvestorField, nRequestID: i32)-> i32;
2017        fn ReqQryTradingCode(&self, pQryTradingCode: QryTradingCodeField, nRequestID: i32)-> i32;
2018        fn ReqQryInstrumentMarginRate(&self, pQryInstrumentMarginRate: QryInstrumentMarginRateField, nRequestID: i32)-> i32;
2019        fn ReqQryInstrumentCommissionRate(&self, pQryInstrumentCommissionRate: QryInstrumentCommissionRateField, nRequestID: i32)-> i32;
2020        fn ReqQryUserSession(&self, pQryUserSession: QryUserSessionField, nRequestID: i32)-> i32;
2021        fn ReqQryExchange(&self, pQryExchange: QryExchangeField, nRequestID: i32)-> i32;
2022        fn ReqQryProduct(&self, pQryProduct: QryProductField, nRequestID: i32)-> i32;
2023        fn ReqQryInstrument(&self, pQryInstrument: QryInstrumentField, nRequestID: i32)-> i32;
2024        fn ReqQryDepthMarketData(&self, pQryDepthMarketData: QryDepthMarketDataField, nRequestID: i32)-> i32;
2025        fn ReqQryTraderOffer(&self, pQryTraderOffer: QryTraderOfferField, nRequestID: i32)-> i32;
2026        fn ReqQrySettlementInfo(&self, pQrySettlementInfo: QrySettlementInfoField, nRequestID: i32)-> i32;
2027        fn ReqQryTransferBank(&self, pQryTransferBank: QryTransferBankField, nRequestID: i32)-> i32;
2028        fn ReqQryInvestorPositionDetail(&self, pQryInvestorPositionDetail: QryInvestorPositionDetailField, nRequestID: i32)-> i32;
2029        fn ReqQryNotice(&self, pQryNotice: QryNoticeField, nRequestID: i32)-> i32;
2030        fn ReqQrySettlementInfoConfirm(&self, pQrySettlementInfoConfirm: QrySettlementInfoConfirmField, nRequestID: i32)-> i32;
2031        fn ReqQryInvestorPositionCombineDetail(&self, pQryInvestorPositionCombineDetail: QryInvestorPositionCombineDetailField, nRequestID: i32)-> i32;
2032        fn ReqQryCFMMCTradingAccountKey(&self, pQryCFMMCTradingAccountKey: QryCFMMCTradingAccountKeyField, nRequestID: i32)-> i32;
2033        fn ReqQryEWarrantOffset(&self, pQryEWarrantOffset: QryEWarrantOffsetField, nRequestID: i32)-> i32;
2034        fn ReqQryInvestorProductGroupMargin(&self, pQryInvestorProductGroupMargin: QryInvestorProductGroupMarginField, nRequestID: i32)-> i32;
2035        fn ReqQryExchangeMarginRate(&self, pQryExchangeMarginRate: QryExchangeMarginRateField, nRequestID: i32)-> i32;
2036        fn ReqQryExchangeMarginRateAdjust(&self, pQryExchangeMarginRateAdjust: QryExchangeMarginRateAdjustField, nRequestID: i32)-> i32;
2037        fn ReqQryExchangeRate(&self, pQryExchangeRate: QryExchangeRateField, nRequestID: i32)-> i32;
2038        fn ReqQrySecAgentACIDMap(&self, pQrySecAgentACIDMap: QrySecAgentACIDMapField, nRequestID: i32)-> i32;
2039        fn ReqQryProductExchRate(&self, pQryProductExchRate: QryProductExchRateField, nRequestID: i32)-> i32;
2040        fn ReqQryProductGroup(&self, pQryProductGroup: QryProductGroupField, nRequestID: i32)-> i32;
2041        fn ReqQryMMInstrumentCommissionRate(&self, pQryMMInstrumentCommissionRate: QryMMInstrumentCommissionRateField, nRequestID: i32)-> i32;
2042        fn ReqQryMMOptionInstrCommRate(&self, pQryMMOptionInstrCommRate: QryMMOptionInstrCommRateField, nRequestID: i32)-> i32;
2043        fn ReqQryInstrumentOrderCommRate(&self, pQryInstrumentOrderCommRate: QryInstrumentOrderCommRateField, nRequestID: i32)-> i32;
2044        fn ReqQrySecAgentTradingAccount(&self, pQryTradingAccount: QryTradingAccountField, nRequestID: i32)-> i32;
2045        fn ReqQrySecAgentCheckMode(&self, pQrySecAgentCheckMode: QrySecAgentCheckModeField, nRequestID: i32)-> i32;
2046        fn ReqQrySecAgentTradeInfo(&self, pQrySecAgentTradeInfo: QrySecAgentTradeInfoField, nRequestID: i32)-> i32;
2047        fn ReqQryOptionInstrTradeCost(&self, pQryOptionInstrTradeCost: QryOptionInstrTradeCostField, nRequestID: i32)-> i32;
2048        fn ReqQryOptionInstrCommRate(&self, pQryOptionInstrCommRate: QryOptionInstrCommRateField, nRequestID: i32)-> i32;
2049        fn ReqQryExecOrder(&self, pQryExecOrder: QryExecOrderField, nRequestID: i32)-> i32;
2050        fn ReqQryForQuote(&self, pQryForQuote: QryForQuoteField, nRequestID: i32)-> i32;
2051        fn ReqQryQuote(&self, pQryQuote: QryQuoteField, nRequestID: i32)-> i32;
2052        fn ReqQryOptionSelfClose(&self, pQryOptionSelfClose: QryOptionSelfCloseField, nRequestID: i32)-> i32;
2053        fn ReqQryInvestUnit(&self, pQryInvestUnit: QryInvestUnitField, nRequestID: i32)-> i32;
2054        fn ReqQryCombInstrumentGuard(&self, pQryCombInstrumentGuard: QryCombInstrumentGuardField, nRequestID: i32)-> i32;
2055        fn ReqQryCombAction(&self, pQryCombAction: QryCombActionField, nRequestID: i32)-> i32;
2056        fn ReqQryTransferSerial(&self, pQryTransferSerial: QryTransferSerialField, nRequestID: i32)-> i32;
2057        fn ReqQryAccountregister(&self, pQryAccountregister: QryAccountregisterField, nRequestID: i32)-> i32;
2058        fn ReqQryContractBank(&self, pQryContractBank: QryContractBankField, nRequestID: i32)-> i32;
2059        fn ReqQryParkedOrder(&self, pQryParkedOrder: QryParkedOrderField, nRequestID: i32)-> i32;
2060        fn ReqQryParkedOrderAction(&self, pQryParkedOrderAction: QryParkedOrderActionField, nRequestID: i32)-> i32;
2061        fn ReqQryTradingNotice(&self, pQryTradingNotice: QryTradingNoticeField, nRequestID: i32)-> i32;
2062        fn ReqQryBrokerTradingParams(&self, pQryBrokerTradingParams: QryBrokerTradingParamsField, nRequestID: i32)-> i32;
2063        fn ReqQryBrokerTradingAlgos(&self, pQryBrokerTradingAlgos: QryBrokerTradingAlgosField, nRequestID: i32)-> i32;
2064        fn ReqQueryCFMMCTradingAccountToken(&self, pQueryCFMMCTradingAccountToken: QueryCFMMCTradingAccountTokenField, nRequestID: i32)-> i32;
2065        fn ReqFromBankToFutureByFuture(&self, pReqTransfer: ReqTransferField, nRequestID: i32)-> i32;
2066        fn ReqFromFutureToBankByFuture(&self, pReqTransfer: ReqTransferField, nRequestID: i32)-> i32;
2067        fn ReqQueryBankAccountMoneyByFuture(&self, pReqQueryAccount: ReqQueryAccountField, nRequestID: i32)-> i32;
2068        fn ReqQryClassifiedInstrument(&self, pQryClassifiedInstrument: QryClassifiedInstrumentField, nRequestID: i32)-> i32;
2069        fn ReqQryCombPromotionParam(&self, pQryCombPromotionParam: QryCombPromotionParamField, nRequestID: i32)-> i32;
2070        fn ReqQryRiskSettleInvstPosition(&self, pQryRiskSettleInvstPosition: QryRiskSettleInvstPositionField, nRequestID: i32)-> i32;
2071        fn ReqQryRiskSettleProductStatus(&self, pQryRiskSettleProductStatus: QryRiskSettleProductStatusField, nRequestID: i32)-> i32;
2072        fn ReqQrySPBMFutureParameter(&self, pQrySPBMFutureParameter: QrySPBMFutureParameterField, nRequestID: i32)-> i32;
2073        fn ReqQrySPBMOptionParameter(&self, pQrySPBMOptionParameter: QrySPBMOptionParameterField, nRequestID: i32)-> i32;
2074        fn ReqQrySPBMIntraParameter(&self, pQrySPBMIntraParameter: QrySPBMIntraParameterField, nRequestID: i32)-> i32;
2075        fn ReqQrySPBMInterParameter(&self, pQrySPBMInterParameter: QrySPBMInterParameterField, nRequestID: i32)-> i32;
2076        fn ReqQrySPBMPortfDefinition(&self, pQrySPBMPortfDefinition: QrySPBMPortfDefinitionField, nRequestID: i32)-> i32;
2077        fn ReqQrySPBMInvestorPortfDef(&self, pQrySPBMInvestorPortfDef: QrySPBMInvestorPortfDefField, nRequestID: i32)-> i32;
2078        fn ReqQryInvestorPortfMarginRatio(&self, pQryInvestorPortfMarginRatio: QryInvestorPortfMarginRatioField, nRequestID: i32)-> i32;
2079        fn ReqQryInvestorProdSPBMDetail(&self, pQryInvestorProdSPBMDetail: QryInvestorProdSPBMDetailField, nRequestID: i32)-> i32;
2080        fn ReqQryInvestorCommoditySPMMMargin(&self, pQryInvestorCommoditySPMMMargin: QryInvestorCommoditySPMMMarginField, nRequestID: i32)-> i32;
2081        fn ReqQryInvestorCommodityGroupSPMMMargin(&self, pQryInvestorCommodityGroupSPMMMargin: QryInvestorCommodityGroupSPMMMarginField, nRequestID: i32)-> i32;
2082        fn ReqQrySPMMInstParam(&self, pQrySPMMInstParam: QrySPMMInstParamField, nRequestID: i32)-> i32;
2083        fn ReqQrySPMMProductParam(&self, pQrySPMMProductParam: QrySPMMProductParamField, nRequestID: i32)-> i32;
2084        fn ReqQrySPBMAddOnInterParameter(&self, pQrySPBMAddOnInterParameter: QrySPBMAddOnInterParameterField, nRequestID: i32)-> i32;
2085        fn ReqQryRCAMSCombProductInfo(&self, pQryRCAMSCombProductInfo: QryRCAMSCombProductInfoField, nRequestID: i32)-> i32;
2086        fn ReqQryRCAMSInstrParameter(&self, pQryRCAMSInstrParameter: QryRCAMSInstrParameterField, nRequestID: i32)-> i32;
2087        fn ReqQryRCAMSIntraParameter(&self, pQryRCAMSIntraParameter: QryRCAMSIntraParameterField, nRequestID: i32)-> i32;
2088        fn ReqQryRCAMSInterParameter(&self, pQryRCAMSInterParameter: QryRCAMSInterParameterField, nRequestID: i32)-> i32;
2089        fn ReqQryRCAMSShortOptAdjustParam(&self, pQryRCAMSShortOptAdjustParam: QryRCAMSShortOptAdjustParamField, nRequestID: i32)-> i32;
2090        fn ReqQryRCAMSInvestorCombPosition(&self, pQryRCAMSInvestorCombPosition: QryRCAMSInvestorCombPositionField, nRequestID: i32)-> i32;
2091        fn ReqQryInvestorProdRCAMSMargin(&self, pQryInvestorProdRCAMSMargin: QryInvestorProdRCAMSMarginField, nRequestID: i32)-> i32;
2092        fn ReqQryRULEInstrParameter(&self, pQryRULEInstrParameter: QryRULEInstrParameterField, nRequestID: i32)-> i32;
2093        fn ReqQryRULEIntraParameter(&self, pQryRULEIntraParameter: QryRULEIntraParameterField, nRequestID: i32)-> i32;
2094        fn ReqQryRULEInterParameter(&self, pQryRULEInterParameter: QryRULEInterParameterField, nRequestID: i32)-> i32;
2095        fn ReqQryInvestorProdRULEMargin(&self, pQryInvestorProdRULEMargin: QryInvestorProdRULEMarginField, nRequestID: i32)-> i32;
2096        fn ReqQryInvestorPortfSetting(&self, pQryInvestorPortfSetting: QryInvestorPortfSettingField, nRequestID: i32)-> i32;
2097        fn ReqQryInvestorInfoCommRec(&self, pQryInvestorInfoCommRec: QryInvestorInfoCommRecField, nRequestID: i32)-> i32;
2098        fn ReqQryCombLeg(&self, pQryCombLeg: QryCombLegField, nRequestID: i32)-> i32;
2099        fn ReqOffsetSetting(&self, pInputOffsetSetting: InputOffsetSettingField, nRequestID: i32)-> i32;
2100        fn ReqCancelOffsetSetting(&self, pInputOffsetSetting: InputOffsetSettingField, nRequestID: i32)-> i32;
2101        fn ReqQryOffsetSetting(&self, pQryOffsetSetting: QryOffsetSettingField, nRequestID: i32)-> i32;
2102    }
2103
2104    #[derive(Debug, Clone, Default)]
2105    struct DisseminationField {
2106        is_null: bool,
2107        SequenceSeries: u16,
2108        SequenceNo: i32,
2109    }
2110    #[derive(Debug, Clone, Default)]
2111    struct ReqUserLoginField {
2112        is_null: bool,
2113        TradingDay: String,
2114        BrokerID: String,
2115        UserID: String,
2116        Password: String,
2117        UserProductInfo: String,
2118        InterfaceProductInfo: String,
2119        ProtocolInfo: String,
2120        MacAddress: String,
2121        OneTimePassword: String,
2122        LoginRemark: String,
2123        ClientIPPort: i32,
2124        ClientIPAddress: String,
2125    }
2126    #[derive(Debug, Clone, Default)]
2127    struct RspUserLoginField {
2128        is_null: bool,
2129        TradingDay: String,
2130        LoginTime: String,
2131        BrokerID: String,
2132        UserID: String,
2133        SystemName: String,
2134        FrontID: i32,
2135        SessionID: i32,
2136        MaxOrderRef: String,
2137        SHFETime: String,
2138        DCETime: String,
2139        CZCETime: String,
2140        FFEXTime: String,
2141        INETime: String,
2142        SysVersion: String,
2143        GFEXTime: String,
2144        LoginDRIdentityID: i32,
2145        UserDRIdentityID: i32,
2146        LastLoginTime: String,
2147        ReserveInfo: String,
2148    }
2149    #[derive(Debug, Clone, Default)]
2150    struct UserLogoutField {
2151        is_null: bool,
2152        BrokerID: String,
2153        UserID: String,
2154    }
2155    #[derive(Debug, Clone, Default)]
2156    struct ForceUserLogoutField {
2157        is_null: bool,
2158        BrokerID: String,
2159        UserID: String,
2160    }
2161    #[derive(Debug, Clone, Default)]
2162    struct ReqAuthenticateField {
2163        is_null: bool,
2164        BrokerID: String,
2165        UserID: String,
2166        UserProductInfo: String,
2167        AuthCode: String,
2168        AppID: String,
2169    }
2170    #[derive(Debug, Clone, Default)]
2171    struct RspAuthenticateField {
2172        is_null: bool,
2173        BrokerID: String,
2174        UserID: String,
2175        UserProductInfo: String,
2176        AppID: String,
2177        AppType: u8,
2178    }
2179    #[derive(Debug, Clone, Default)]
2180    struct AuthenticationInfoField {
2181        is_null: bool,
2182        BrokerID: String,
2183        UserID: String,
2184        UserProductInfo: String,
2185        AuthInfo: String,
2186        IsResult: i32,
2187        AppID: String,
2188        AppType: u8,
2189        ClientIPAddress: String,
2190    }
2191    #[derive(Debug, Clone, Default)]
2192    struct RspUserLogin2Field {
2193        is_null: bool,
2194        TradingDay: String,
2195        LoginTime: String,
2196        BrokerID: String,
2197        UserID: String,
2198        SystemName: String,
2199        FrontID: i32,
2200        SessionID: i32,
2201        MaxOrderRef: String,
2202        SHFETime: String,
2203        DCETime: String,
2204        CZCETime: String,
2205        FFEXTime: String,
2206        INETime: String,
2207        RandomString: Vec<u8>,
2208    }
2209    #[derive(Debug, Clone, Default)]
2210    struct TransferHeaderField {
2211        is_null: bool,
2212        Version: String,
2213        TradeCode: String,
2214        TradeDate: String,
2215        TradeTime: String,
2216        TradeSerial: String,
2217        FutureID: String,
2218        BankID: String,
2219        BankBrchID: String,
2220        OperNo: String,
2221        DeviceID: String,
2222        RecordNum: Vec<u8>,
2223        SessionID: i32,
2224        RequestID: i32,
2225    }
2226    #[derive(Debug, Clone, Default)]
2227    struct TransferBankToFutureReqField {
2228        is_null: bool,
2229        FutureAccount: String,
2230        FuturePwdFlag: u8,
2231        FutureAccPwd: String,
2232        TradeAmt: f64,
2233        CustFee: f64,
2234        CurrencyCode: String,
2235    }
2236    #[derive(Debug, Clone, Default)]
2237    struct TransferBankToFutureRspField {
2238        is_null: bool,
2239        RetCode: String,
2240        RetInfo: String,
2241        FutureAccount: String,
2242        TradeAmt: f64,
2243        CustFee: f64,
2244        CurrencyCode: String,
2245    }
2246    #[derive(Debug, Clone, Default)]
2247    struct TransferFutureToBankReqField {
2248        is_null: bool,
2249        FutureAccount: String,
2250        FuturePwdFlag: u8,
2251        FutureAccPwd: String,
2252        TradeAmt: f64,
2253        CustFee: f64,
2254        CurrencyCode: String,
2255    }
2256    #[derive(Debug, Clone, Default)]
2257    struct TransferFutureToBankRspField {
2258        is_null: bool,
2259        RetCode: String,
2260        RetInfo: String,
2261        FutureAccount: String,
2262        TradeAmt: f64,
2263        CustFee: f64,
2264        CurrencyCode: String,
2265    }
2266    #[derive(Debug, Clone, Default)]
2267    struct TransferQryBankReqField {
2268        is_null: bool,
2269        FutureAccount: String,
2270        FuturePwdFlag: u8,
2271        FutureAccPwd: String,
2272        CurrencyCode: String,
2273    }
2274    #[derive(Debug, Clone, Default)]
2275    struct TransferQryBankRspField {
2276        is_null: bool,
2277        RetCode: String,
2278        RetInfo: String,
2279        FutureAccount: String,
2280        TradeAmt: f64,
2281        UseAmt: f64,
2282        FetchAmt: f64,
2283        CurrencyCode: String,
2284    }
2285    #[derive(Debug, Clone, Default)]
2286    struct TransferQryDetailReqField {
2287        is_null: bool,
2288        FutureAccount: String,
2289    }
2290    #[derive(Debug, Clone, Default)]
2291    struct TransferQryDetailRspField {
2292        is_null: bool,
2293        TradeDate: String,
2294        TradeTime: String,
2295        TradeCode: String,
2296        FutureSerial: i32,
2297        FutureID: String,
2298        FutureAccount: String,
2299        BankSerial: i32,
2300        BankID: String,
2301        BankBrchID: String,
2302        BankAccount: String,
2303        CertCode: String,
2304        CurrencyCode: String,
2305        TxAmount: f64,
2306        Flag: u8,
2307    }
2308    #[derive(Debug, Clone, Default)]
2309    struct RspInfoField {
2310        is_null: bool,
2311        ErrorID: i32,
2312        ErrorMsg: String,
2313    }
2314    #[derive(Debug, Clone, Default)]
2315    struct ExchangeField {
2316        is_null: bool,
2317        ExchangeID: String,
2318        ExchangeName: String,
2319        ExchangeProperty: u8,
2320    }
2321    #[derive(Debug, Clone, Default)]
2322    struct ProductField {
2323        is_null: bool,
2324        ProductName: String,
2325        ExchangeID: String,
2326        ProductClass: u8,
2327        VolumeMultiple: i32,
2328        PriceTick: f64,
2329        MaxMarketOrderVolume: i32,
2330        MinMarketOrderVolume: i32,
2331        MaxLimitOrderVolume: i32,
2332        MinLimitOrderVolume: i32,
2333        PositionType: u8,
2334        PositionDateType: u8,
2335        CloseDealType: u8,
2336        TradeCurrencyID: String,
2337        MortgageFundUseRange: u8,
2338        UnderlyingMultiple: f64,
2339        ProductID: String,
2340        ExchangeProductID: String,
2341        OpenLimitControlLevel: u8,
2342        OrderFreqControlLevel: u8,
2343    }
2344    #[derive(Debug, Clone, Default)]
2345    struct InstrumentField {
2346        is_null: bool,
2347        ExchangeID: String,
2348        InstrumentName: String,
2349        ProductClass: u8,
2350        DeliveryYear: i32,
2351        DeliveryMonth: i32,
2352        MaxMarketOrderVolume: i32,
2353        MinMarketOrderVolume: i32,
2354        MaxLimitOrderVolume: i32,
2355        MinLimitOrderVolume: i32,
2356        VolumeMultiple: i32,
2357        PriceTick: f64,
2358        CreateDate: String,
2359        OpenDate: String,
2360        ExpireDate: String,
2361        StartDelivDate: String,
2362        EndDelivDate: String,
2363        InstLifePhase: u8,
2364        IsTrading: i32,
2365        PositionType: u8,
2366        PositionDateType: u8,
2367        LongMarginRatio: f64,
2368        ShortMarginRatio: f64,
2369        MaxMarginSideAlgorithm: u8,
2370        StrikePrice: f64,
2371        OptionsType: u8,
2372        UnderlyingMultiple: f64,
2373        CombinationType: u8,
2374        InstrumentID: String,
2375        ExchangeInstID: String,
2376        ProductID: String,
2377        UnderlyingInstrID: String,
2378    }
2379    #[derive(Debug, Clone, Default)]
2380    struct BrokerField {
2381        is_null: bool,
2382        BrokerID: String,
2383        BrokerAbbr: String,
2384        BrokerName: String,
2385        IsActive: i32,
2386    }
2387    #[derive(Debug, Clone, Default)]
2388    struct TraderField {
2389        is_null: bool,
2390        ExchangeID: String,
2391        TraderID: String,
2392        ParticipantID: String,
2393        Password: String,
2394        InstallCount: i32,
2395        BrokerID: String,
2396        OrderCancelAlg: u8,
2397        TradeInstallCount: i32,
2398        MDInstallCount: i32,
2399    }
2400    #[derive(Debug, Clone, Default)]
2401    struct InvestorField {
2402        is_null: bool,
2403        InvestorID: String,
2404        BrokerID: String,
2405        InvestorGroupID: String,
2406        InvestorName: String,
2407        IdentifiedCardType: u8,
2408        IdentifiedCardNo: String,
2409        IsActive: i32,
2410        Telephone: String,
2411        Address: String,
2412        OpenDate: String,
2413        Mobile: String,
2414        CommModelID: String,
2415        MarginModelID: String,
2416        IsOrderFreq: u8,
2417        IsOpenVolLimit: u8,
2418    }
2419    #[derive(Debug, Clone, Default)]
2420    struct TradingCodeField {
2421        is_null: bool,
2422        InvestorID: String,
2423        BrokerID: String,
2424        ExchangeID: String,
2425        ClientID: String,
2426        IsActive: i32,
2427        ClientIDType: u8,
2428        BranchID: String,
2429        BizType: u8,
2430        InvestUnitID: String,
2431    }
2432    #[derive(Debug, Clone, Default)]
2433    struct PartBrokerField {
2434        is_null: bool,
2435        BrokerID: String,
2436        ExchangeID: String,
2437        ParticipantID: String,
2438        IsActive: i32,
2439    }
2440    #[derive(Debug, Clone, Default)]
2441    struct SuperUserField {
2442        is_null: bool,
2443        UserID: String,
2444        UserName: String,
2445        Password: String,
2446        IsActive: i32,
2447    }
2448    #[derive(Debug, Clone, Default)]
2449    struct SuperUserFunctionField {
2450        is_null: bool,
2451        UserID: String,
2452        FunctionCode: u8,
2453    }
2454    #[derive(Debug, Clone, Default)]
2455    struct InvestorGroupField {
2456        is_null: bool,
2457        BrokerID: String,
2458        InvestorGroupID: String,
2459        InvestorGroupName: String,
2460    }
2461    #[derive(Debug, Clone, Default)]
2462    struct TradingAccountField {
2463        is_null: bool,
2464        BrokerID: String,
2465        AccountID: String,
2466        PreMortgage: f64,
2467        PreCredit: f64,
2468        PreDeposit: f64,
2469        PreBalance: f64,
2470        PreMargin: f64,
2471        InterestBase: f64,
2472        Interest: f64,
2473        Deposit: f64,
2474        Withdraw: f64,
2475        FrozenMargin: f64,
2476        FrozenCash: f64,
2477        FrozenCommission: f64,
2478        CurrMargin: f64,
2479        CashIn: f64,
2480        Commission: f64,
2481        CloseProfit: f64,
2482        PositionProfit: f64,
2483        Balance: f64,
2484        Available: f64,
2485        WithdrawQuota: f64,
2486        Reserve: f64,
2487        TradingDay: String,
2488        SettlementID: i32,
2489        Credit: f64,
2490        Mortgage: f64,
2491        ExchangeMargin: f64,
2492        DeliveryMargin: f64,
2493        ExchangeDeliveryMargin: f64,
2494        ReserveBalance: f64,
2495        CurrencyID: String,
2496        PreFundMortgageIn: f64,
2497        PreFundMortgageOut: f64,
2498        FundMortgageIn: f64,
2499        FundMortgageOut: f64,
2500        FundMortgageAvailable: f64,
2501        MortgageableFund: f64,
2502        SpecProductMargin: f64,
2503        SpecProductFrozenMargin: f64,
2504        SpecProductCommission: f64,
2505        SpecProductFrozenCommission: f64,
2506        SpecProductPositionProfit: f64,
2507        SpecProductCloseProfit: f64,
2508        SpecProductPositionProfitByAlg: f64,
2509        SpecProductExchangeMargin: f64,
2510        BizType: u8,
2511        FrozenSwap: f64,
2512        RemainSwap: f64,
2513        OptionValue: f64,
2514    }
2515    #[derive(Debug, Clone, Default)]
2516    struct InvestorPositionField {
2517        is_null: bool,
2518        BrokerID: String,
2519        InvestorID: String,
2520        PosiDirection: u8,
2521        HedgeFlag: u8,
2522        PositionDate: u8,
2523        YdPosition: i32,
2524        Position: i32,
2525        LongFrozen: i32,
2526        ShortFrozen: i32,
2527        LongFrozenAmount: f64,
2528        ShortFrozenAmount: f64,
2529        OpenVolume: i32,
2530        CloseVolume: i32,
2531        OpenAmount: f64,
2532        CloseAmount: f64,
2533        PositionCost: f64,
2534        PreMargin: f64,
2535        UseMargin: f64,
2536        FrozenMargin: f64,
2537        FrozenCash: f64,
2538        FrozenCommission: f64,
2539        CashIn: f64,
2540        Commission: f64,
2541        CloseProfit: f64,
2542        PositionProfit: f64,
2543        PreSettlementPrice: f64,
2544        SettlementPrice: f64,
2545        TradingDay: String,
2546        SettlementID: i32,
2547        OpenCost: f64,
2548        ExchangeMargin: f64,
2549        CombPosition: i32,
2550        CombLongFrozen: i32,
2551        CombShortFrozen: i32,
2552        CloseProfitByDate: f64,
2553        CloseProfitByTrade: f64,
2554        TodayPosition: i32,
2555        MarginRateByMoney: f64,
2556        MarginRateByVolume: f64,
2557        StrikeFrozen: i32,
2558        StrikeFrozenAmount: f64,
2559        AbandonFrozen: i32,
2560        ExchangeID: String,
2561        YdStrikeFrozen: i32,
2562        InvestUnitID: String,
2563        PositionCostOffset: f64,
2564        TasPosition: i32,
2565        TasPositionCost: f64,
2566        InstrumentID: String,
2567        OptionValue: f64,
2568    }
2569    #[derive(Debug, Clone, Default)]
2570    struct InstrumentMarginRateField {
2571        is_null: bool,
2572        InvestorRange: u8,
2573        BrokerID: String,
2574        InvestorID: String,
2575        HedgeFlag: u8,
2576        LongMarginRatioByMoney: f64,
2577        LongMarginRatioByVolume: f64,
2578        ShortMarginRatioByMoney: f64,
2579        ShortMarginRatioByVolume: f64,
2580        IsRelative: i32,
2581        ExchangeID: String,
2582        InvestUnitID: String,
2583        InstrumentID: String,
2584    }
2585    #[derive(Debug, Clone, Default)]
2586    struct InstrumentCommissionRateField {
2587        is_null: bool,
2588        InvestorRange: u8,
2589        BrokerID: String,
2590        InvestorID: String,
2591        OpenRatioByMoney: f64,
2592        OpenRatioByVolume: f64,
2593        CloseRatioByMoney: f64,
2594        CloseRatioByVolume: f64,
2595        CloseTodayRatioByMoney: f64,
2596        CloseTodayRatioByVolume: f64,
2597        ExchangeID: String,
2598        BizType: u8,
2599        InvestUnitID: String,
2600        InstrumentID: String,
2601    }
2602    #[derive(Debug, Clone, Default)]
2603    struct DepthMarketDataField {
2604        is_null: bool,
2605        TradingDay: String,
2606        ExchangeID: String,
2607        LastPrice: f64,
2608        PreSettlementPrice: f64,
2609        PreClosePrice: f64,
2610        PreOpenInterest: f64,
2611        OpenPrice: f64,
2612        HighestPrice: f64,
2613        LowestPrice: f64,
2614        Volume: i32,
2615        Turnover: f64,
2616        OpenInterest: f64,
2617        ClosePrice: f64,
2618        SettlementPrice: f64,
2619        UpperLimitPrice: f64,
2620        LowerLimitPrice: f64,
2621        PreDelta: f64,
2622        CurrDelta: f64,
2623        UpdateTime: String,
2624        UpdateMillisec: i32,
2625        BidPrice1: f64,
2626        BidVolume1: i32,
2627        AskPrice1: f64,
2628        AskVolume1: i32,
2629        BidPrice2: f64,
2630        BidVolume2: i32,
2631        AskPrice2: f64,
2632        AskVolume2: i32,
2633        BidPrice3: f64,
2634        BidVolume3: i32,
2635        AskPrice3: f64,
2636        AskVolume3: i32,
2637        BidPrice4: f64,
2638        BidVolume4: i32,
2639        AskPrice4: f64,
2640        AskVolume4: i32,
2641        BidPrice5: f64,
2642        BidVolume5: i32,
2643        AskPrice5: f64,
2644        AskVolume5: i32,
2645        AveragePrice: f64,
2646        ActionDay: String,
2647        InstrumentID: String,
2648        ExchangeInstID: String,
2649        BandingUpperPrice: f64,
2650        BandingLowerPrice: f64,
2651    }
2652    #[derive(Debug, Clone, Default)]
2653    struct InstrumentTradingRightField {
2654        is_null: bool,
2655        InvestorRange: u8,
2656        BrokerID: String,
2657        InvestorID: String,
2658        TradingRight: u8,
2659        InstrumentID: String,
2660    }
2661    #[derive(Debug, Clone, Default)]
2662    struct BrokerUserField {
2663        is_null: bool,
2664        BrokerID: String,
2665        UserID: String,
2666        UserName: String,
2667        UserType: u8,
2668        IsActive: i32,
2669        IsUsingOTP: i32,
2670        IsAuthForce: i32,
2671    }
2672    #[derive(Debug, Clone, Default)]
2673    struct BrokerUserPasswordField {
2674        is_null: bool,
2675        BrokerID: String,
2676        UserID: String,
2677        Password: String,
2678        LastUpdateTime: String,
2679        LastLoginTime: String,
2680        ExpireDate: String,
2681        WeakExpireDate: String,
2682    }
2683    #[derive(Debug, Clone, Default)]
2684    struct BrokerUserFunctionField {
2685        is_null: bool,
2686        BrokerID: String,
2687        UserID: String,
2688        BrokerFunctionCode: u8,
2689    }
2690    #[derive(Debug, Clone, Default)]
2691    struct TraderOfferField {
2692        is_null: bool,
2693        ExchangeID: String,
2694        TraderID: String,
2695        ParticipantID: String,
2696        Password: String,
2697        InstallID: i32,
2698        OrderLocalID: String,
2699        TraderConnectStatus: u8,
2700        ConnectRequestDate: String,
2701        ConnectRequestTime: String,
2702        LastReportDate: String,
2703        LastReportTime: String,
2704        ConnectDate: String,
2705        ConnectTime: String,
2706        StartDate: String,
2707        StartTime: String,
2708        TradingDay: String,
2709        BrokerID: String,
2710        MaxTradeID: String,
2711        MaxOrderMessageReference: Vec<u8>,
2712        OrderCancelAlg: u8,
2713    }
2714    #[derive(Debug, Clone, Default)]
2715    struct SettlementInfoField {
2716        is_null: bool,
2717        TradingDay: String,
2718        SettlementID: i32,
2719        BrokerID: String,
2720        InvestorID: String,
2721        SequenceNo: i32,
2722        Content: Vec<u8>,
2723        AccountID: String,
2724        CurrencyID: String,
2725    }
2726    #[derive(Debug, Clone, Default)]
2727    struct InstrumentMarginRateAdjustField {
2728        is_null: bool,
2729        InvestorRange: u8,
2730        BrokerID: String,
2731        InvestorID: String,
2732        HedgeFlag: u8,
2733        LongMarginRatioByMoney: f64,
2734        LongMarginRatioByVolume: f64,
2735        ShortMarginRatioByMoney: f64,
2736        ShortMarginRatioByVolume: f64,
2737        IsRelative: i32,
2738        InstrumentID: String,
2739    }
2740    #[derive(Debug, Clone, Default)]
2741    struct ExchangeMarginRateField {
2742        is_null: bool,
2743        BrokerID: String,
2744        HedgeFlag: u8,
2745        LongMarginRatioByMoney: f64,
2746        LongMarginRatioByVolume: f64,
2747        ShortMarginRatioByMoney: f64,
2748        ShortMarginRatioByVolume: f64,
2749        ExchangeID: String,
2750        InstrumentID: String,
2751    }
2752    #[derive(Debug, Clone, Default)]
2753    struct ExchangeMarginRateAdjustField {
2754        is_null: bool,
2755        BrokerID: String,
2756        HedgeFlag: u8,
2757        LongMarginRatioByMoney: f64,
2758        LongMarginRatioByVolume: f64,
2759        ShortMarginRatioByMoney: f64,
2760        ShortMarginRatioByVolume: f64,
2761        ExchLongMarginRatioByMoney: f64,
2762        ExchLongMarginRatioByVolume: f64,
2763        ExchShortMarginRatioByMoney: f64,
2764        ExchShortMarginRatioByVolume: f64,
2765        NoLongMarginRatioByMoney: f64,
2766        NoLongMarginRatioByVolume: f64,
2767        NoShortMarginRatioByMoney: f64,
2768        NoShortMarginRatioByVolume: f64,
2769        InstrumentID: String,
2770    }
2771    #[derive(Debug, Clone, Default)]
2772    struct ExchangeRateField {
2773        is_null: bool,
2774        BrokerID: String,
2775        FromCurrencyID: String,
2776        FromCurrencyUnit: f64,
2777        ToCurrencyID: String,
2778        ExchangeRate: f64,
2779    }
2780    #[derive(Debug, Clone, Default)]
2781    struct SettlementRefField {
2782        is_null: bool,
2783        TradingDay: String,
2784        SettlementID: i32,
2785    }
2786    #[derive(Debug, Clone, Default)]
2787    struct CurrentTimeField {
2788        is_null: bool,
2789        CurrDate: String,
2790        CurrTime: String,
2791        CurrMillisec: i32,
2792        ActionDay: String,
2793    }
2794    #[derive(Debug, Clone, Default)]
2795    struct CommPhaseField {
2796        is_null: bool,
2797        TradingDay: String,
2798        CommPhaseNo: u16,
2799        SystemID: String,
2800    }
2801    #[derive(Debug, Clone, Default)]
2802    struct LoginInfoField {
2803        is_null: bool,
2804        FrontID: i32,
2805        SessionID: i32,
2806        BrokerID: String,
2807        UserID: String,
2808        LoginDate: String,
2809        LoginTime: String,
2810        UserProductInfo: String,
2811        InterfaceProductInfo: String,
2812        ProtocolInfo: String,
2813        SystemName: String,
2814        PasswordDeprecated: Vec<u8>,
2815        MaxOrderRef: String,
2816        SHFETime: String,
2817        DCETime: String,
2818        CZCETime: String,
2819        FFEXTime: String,
2820        MacAddress: String,
2821        OneTimePassword: String,
2822        INETime: String,
2823        IsQryControl: i32,
2824        LoginRemark: String,
2825        Password: String,
2826        IPAddress: String,
2827    }
2828    #[derive(Debug, Clone, Default)]
2829    struct LogoutAllField {
2830        is_null: bool,
2831        FrontID: i32,
2832        SessionID: i32,
2833        SystemName: String,
2834    }
2835    #[derive(Debug, Clone, Default)]
2836    struct FrontStatusField {
2837        is_null: bool,
2838        FrontID: i32,
2839        LastReportDate: String,
2840        LastReportTime: String,
2841        IsActive: i32,
2842    }
2843    #[derive(Debug, Clone, Default)]
2844    struct UserPasswordUpdateField {
2845        is_null: bool,
2846        BrokerID: String,
2847        UserID: String,
2848        OldPassword: String,
2849        NewPassword: String,
2850    }
2851    #[derive(Debug, Clone, Default)]
2852    struct InputOrderField {
2853        is_null: bool,
2854        BrokerID: String,
2855        InvestorID: String,
2856        OrderRef: String,
2857        UserID: String,
2858        OrderPriceType: u8,
2859        Direction: u8,
2860        CombOffsetFlag: String,
2861        CombHedgeFlag: String,
2862        LimitPrice: f64,
2863        VolumeTotalOriginal: i32,
2864        TimeCondition: u8,
2865        GTDDate: String,
2866        VolumeCondition: u8,
2867        MinVolume: i32,
2868        ContingentCondition: u8,
2869        StopPrice: f64,
2870        ForceCloseReason: u8,
2871        IsAutoSuspend: i32,
2872        BusinessUnit: String,
2873        RequestID: i32,
2874        UserForceClose: i32,
2875        IsSwapOrder: i32,
2876        ExchangeID: String,
2877        InvestUnitID: String,
2878        AccountID: String,
2879        CurrencyID: String,
2880        ClientID: String,
2881        MacAddress: String,
2882        InstrumentID: String,
2883        IPAddress: String,
2884        OrderMemo: String,
2885        SessionReqSeq: i32,
2886    }
2887    #[derive(Debug, Clone, Default)]
2888    struct OrderField {
2889        is_null: bool,
2890        BrokerID: String,
2891        InvestorID: String,
2892        OrderRef: String,
2893        UserID: String,
2894        OrderPriceType: u8,
2895        Direction: u8,
2896        CombOffsetFlag: String,
2897        CombHedgeFlag: String,
2898        LimitPrice: f64,
2899        VolumeTotalOriginal: i32,
2900        TimeCondition: u8,
2901        GTDDate: String,
2902        VolumeCondition: u8,
2903        MinVolume: i32,
2904        ContingentCondition: u8,
2905        StopPrice: f64,
2906        ForceCloseReason: u8,
2907        IsAutoSuspend: i32,
2908        BusinessUnit: String,
2909        RequestID: i32,
2910        OrderLocalID: String,
2911        ExchangeID: String,
2912        ParticipantID: String,
2913        ClientID: String,
2914        TraderID: String,
2915        InstallID: i32,
2916        OrderSubmitStatus: u8,
2917        NotifySequence: i32,
2918        TradingDay: String,
2919        SettlementID: i32,
2920        OrderSysID: String,
2921        OrderSource: u8,
2922        OrderStatus: u8,
2923        OrderType: u8,
2924        VolumeTraded: i32,
2925        VolumeTotal: i32,
2926        InsertDate: String,
2927        InsertTime: String,
2928        ActiveTime: String,
2929        SuspendTime: String,
2930        UpdateTime: String,
2931        CancelTime: String,
2932        ActiveTraderID: String,
2933        ClearingPartID: String,
2934        SequenceNo: i32,
2935        FrontID: i32,
2936        SessionID: i32,
2937        UserProductInfo: String,
2938        StatusMsg: String,
2939        UserForceClose: i32,
2940        ActiveUserID: String,
2941        BrokerOrderSeq: i32,
2942        RelativeOrderSysID: String,
2943        ZCETotalTradedVolume: i32,
2944        IsSwapOrder: i32,
2945        BranchID: String,
2946        InvestUnitID: String,
2947        AccountID: String,
2948        CurrencyID: String,
2949        MacAddress: String,
2950        InstrumentID: String,
2951        ExchangeInstID: String,
2952        IPAddress: String,
2953        OrderMemo: String,
2954        SessionReqSeq: i32,
2955    }
2956    #[derive(Debug, Clone, Default)]
2957    struct ExchangeOrderField {
2958        is_null: bool,
2959        OrderPriceType: u8,
2960        Direction: u8,
2961        CombOffsetFlag: String,
2962        CombHedgeFlag: String,
2963        LimitPrice: f64,
2964        VolumeTotalOriginal: i32,
2965        TimeCondition: u8,
2966        GTDDate: String,
2967        VolumeCondition: u8,
2968        MinVolume: i32,
2969        ContingentCondition: u8,
2970        StopPrice: f64,
2971        ForceCloseReason: u8,
2972        IsAutoSuspend: i32,
2973        BusinessUnit: String,
2974        RequestID: i32,
2975        OrderLocalID: String,
2976        ExchangeID: String,
2977        ParticipantID: String,
2978        ClientID: String,
2979        TraderID: String,
2980        InstallID: i32,
2981        OrderSubmitStatus: u8,
2982        NotifySequence: i32,
2983        TradingDay: String,
2984        SettlementID: i32,
2985        OrderSysID: String,
2986        OrderSource: u8,
2987        OrderStatus: u8,
2988        OrderType: u8,
2989        VolumeTraded: i32,
2990        VolumeTotal: i32,
2991        InsertDate: String,
2992        InsertTime: String,
2993        ActiveTime: String,
2994        SuspendTime: String,
2995        UpdateTime: String,
2996        CancelTime: String,
2997        ActiveTraderID: String,
2998        ClearingPartID: String,
2999        SequenceNo: i32,
3000        BranchID: String,
3001        MacAddress: String,
3002        ExchangeInstID: String,
3003        IPAddress: String,
3004    }
3005    #[derive(Debug, Clone, Default)]
3006    struct ExchangeOrderInsertErrorField {
3007        is_null: bool,
3008        ExchangeID: String,
3009        ParticipantID: String,
3010        TraderID: String,
3011        InstallID: i32,
3012        OrderLocalID: String,
3013        ErrorID: i32,
3014        ErrorMsg: String,
3015    }
3016    #[derive(Debug, Clone, Default)]
3017    struct InputOrderActionField {
3018        is_null: bool,
3019        BrokerID: String,
3020        InvestorID: String,
3021        OrderActionRef: i32,
3022        OrderRef: String,
3023        RequestID: i32,
3024        FrontID: i32,
3025        SessionID: i32,
3026        ExchangeID: String,
3027        OrderSysID: String,
3028        ActionFlag: u8,
3029        LimitPrice: f64,
3030        VolumeChange: i32,
3031        UserID: String,
3032        InvestUnitID: String,
3033        MacAddress: String,
3034        InstrumentID: String,
3035        IPAddress: String,
3036        OrderMemo: String,
3037        SessionReqSeq: i32,
3038    }
3039    #[derive(Debug, Clone, Default)]
3040    struct OrderActionField {
3041        is_null: bool,
3042        BrokerID: String,
3043        InvestorID: String,
3044        OrderActionRef: i32,
3045        OrderRef: String,
3046        RequestID: i32,
3047        FrontID: i32,
3048        SessionID: i32,
3049        ExchangeID: String,
3050        OrderSysID: String,
3051        ActionFlag: u8,
3052        LimitPrice: f64,
3053        VolumeChange: i32,
3054        ActionDate: String,
3055        ActionTime: String,
3056        TraderID: String,
3057        InstallID: i32,
3058        OrderLocalID: String,
3059        ActionLocalID: String,
3060        ParticipantID: String,
3061        ClientID: String,
3062        BusinessUnit: String,
3063        OrderActionStatus: u8,
3064        UserID: String,
3065        StatusMsg: String,
3066        BranchID: String,
3067        InvestUnitID: String,
3068        MacAddress: String,
3069        InstrumentID: String,
3070        IPAddress: String,
3071        OrderMemo: String,
3072        SessionReqSeq: i32,
3073    }
3074    #[derive(Debug, Clone, Default)]
3075    struct ExchangeOrderActionField {
3076        is_null: bool,
3077        ExchangeID: String,
3078        OrderSysID: String,
3079        ActionFlag: u8,
3080        LimitPrice: f64,
3081        VolumeChange: i32,
3082        ActionDate: String,
3083        ActionTime: String,
3084        TraderID: String,
3085        InstallID: i32,
3086        OrderLocalID: String,
3087        ActionLocalID: String,
3088        ParticipantID: String,
3089        ClientID: String,
3090        BusinessUnit: String,
3091        OrderActionStatus: u8,
3092        UserID: String,
3093        BranchID: String,
3094        MacAddress: String,
3095        IPAddress: String,
3096    }
3097    #[derive(Debug, Clone, Default)]
3098    struct ExchangeOrderActionErrorField {
3099        is_null: bool,
3100        ExchangeID: String,
3101        OrderSysID: String,
3102        TraderID: String,
3103        InstallID: i32,
3104        OrderLocalID: String,
3105        ActionLocalID: String,
3106        ErrorID: i32,
3107        ErrorMsg: String,
3108    }
3109    #[derive(Debug, Clone, Default)]
3110    struct ExchangeTradeField {
3111        is_null: bool,
3112        ExchangeID: String,
3113        TradeID: String,
3114        Direction: u8,
3115        OrderSysID: String,
3116        ParticipantID: String,
3117        ClientID: String,
3118        TradingRole: u8,
3119        OffsetFlag: u8,
3120        HedgeFlag: u8,
3121        Price: f64,
3122        Volume: i32,
3123        TradeDate: String,
3124        TradeTime: String,
3125        TradeType: u8,
3126        PriceSource: u8,
3127        TraderID: String,
3128        OrderLocalID: String,
3129        ClearingPartID: String,
3130        BusinessUnit: String,
3131        SequenceNo: i32,
3132        TradeSource: u8,
3133        ExchangeInstID: String,
3134    }
3135    #[derive(Debug, Clone, Default)]
3136    struct TradeField {
3137        is_null: bool,
3138        BrokerID: String,
3139        InvestorID: String,
3140        OrderRef: String,
3141        UserID: String,
3142        ExchangeID: String,
3143        TradeID: String,
3144        Direction: u8,
3145        OrderSysID: String,
3146        ParticipantID: String,
3147        ClientID: String,
3148        TradingRole: u8,
3149        OffsetFlag: u8,
3150        HedgeFlag: u8,
3151        Price: f64,
3152        Volume: i32,
3153        TradeDate: String,
3154        TradeTime: String,
3155        TradeType: u8,
3156        PriceSource: u8,
3157        TraderID: String,
3158        OrderLocalID: String,
3159        ClearingPartID: String,
3160        BusinessUnit: String,
3161        SequenceNo: i32,
3162        TradingDay: String,
3163        SettlementID: i32,
3164        BrokerOrderSeq: i32,
3165        TradeSource: u8,
3166        InvestUnitID: String,
3167        InstrumentID: String,
3168        ExchangeInstID: String,
3169    }
3170    #[derive(Debug, Clone, Default)]
3171    struct UserSessionField {
3172        is_null: bool,
3173        FrontID: i32,
3174        SessionID: i32,
3175        BrokerID: String,
3176        UserID: String,
3177        LoginDate: String,
3178        LoginTime: String,
3179        UserProductInfo: String,
3180        InterfaceProductInfo: String,
3181        ProtocolInfo: String,
3182        MacAddress: String,
3183        LoginRemark: String,
3184        IPAddress: String,
3185    }
3186    #[derive(Debug, Clone, Default)]
3187    struct QryMaxOrderVolumeField {
3188        is_null: bool,
3189        BrokerID: String,
3190        InvestorID: String,
3191        Direction: u8,
3192        OffsetFlag: u8,
3193        HedgeFlag: u8,
3194        MaxVolume: i32,
3195        ExchangeID: String,
3196        InvestUnitID: String,
3197        InstrumentID: String,
3198    }
3199    #[derive(Debug, Clone, Default)]
3200    struct SettlementInfoConfirmField {
3201        is_null: bool,
3202        BrokerID: String,
3203        InvestorID: String,
3204        ConfirmDate: String,
3205        ConfirmTime: String,
3206        SettlementID: i32,
3207        AccountID: String,
3208        CurrencyID: String,
3209    }
3210    #[derive(Debug, Clone, Default)]
3211    struct SyncDepositField {
3212        is_null: bool,
3213        DepositSeqNo: Vec<u8>,
3214        BrokerID: String,
3215        InvestorID: String,
3216        Deposit: f64,
3217        IsForce: i32,
3218        CurrencyID: String,
3219        IsFromSopt: i32,
3220        TradingPassword: String,
3221        IsSecAgentTranfer: i32,
3222    }
3223    #[derive(Debug, Clone, Default)]
3224    struct SyncFundMortgageField {
3225        is_null: bool,
3226        MortgageSeqNo: Vec<u8>,
3227        BrokerID: String,
3228        InvestorID: String,
3229        FromCurrencyID: String,
3230        MortgageAmount: f64,
3231        ToCurrencyID: String,
3232    }
3233    #[derive(Debug, Clone, Default)]
3234    struct BrokerSyncField {
3235        is_null: bool,
3236        BrokerID: String,
3237    }
3238    #[derive(Debug, Clone, Default)]
3239    struct SyncingInvestorField {
3240        is_null: bool,
3241        InvestorID: String,
3242        BrokerID: String,
3243        InvestorGroupID: String,
3244        InvestorName: String,
3245        IdentifiedCardType: u8,
3246        IdentifiedCardNo: String,
3247        IsActive: i32,
3248        Telephone: String,
3249        Address: String,
3250        OpenDate: String,
3251        Mobile: String,
3252        CommModelID: String,
3253        MarginModelID: String,
3254        IsOrderFreq: u8,
3255        IsOpenVolLimit: u8,
3256    }
3257    #[derive(Debug, Clone, Default)]
3258    struct SyncingTradingCodeField {
3259        is_null: bool,
3260        InvestorID: String,
3261        BrokerID: String,
3262        ExchangeID: String,
3263        ClientID: String,
3264        IsActive: i32,
3265        ClientIDType: u8,
3266    }
3267    #[derive(Debug, Clone, Default)]
3268    struct SyncingInvestorGroupField {
3269        is_null: bool,
3270        BrokerID: String,
3271        InvestorGroupID: String,
3272        InvestorGroupName: String,
3273    }
3274    #[derive(Debug, Clone, Default)]
3275    struct SyncingTradingAccountField {
3276        is_null: bool,
3277        BrokerID: String,
3278        AccountID: String,
3279        PreMortgage: f64,
3280        PreCredit: f64,
3281        PreDeposit: f64,
3282        PreBalance: f64,
3283        PreMargin: f64,
3284        InterestBase: f64,
3285        Interest: f64,
3286        Deposit: f64,
3287        Withdraw: f64,
3288        FrozenMargin: f64,
3289        FrozenCash: f64,
3290        FrozenCommission: f64,
3291        CurrMargin: f64,
3292        CashIn: f64,
3293        Commission: f64,
3294        CloseProfit: f64,
3295        PositionProfit: f64,
3296        Balance: f64,
3297        Available: f64,
3298        WithdrawQuota: f64,
3299        Reserve: f64,
3300        TradingDay: String,
3301        SettlementID: i32,
3302        Credit: f64,
3303        Mortgage: f64,
3304        ExchangeMargin: f64,
3305        DeliveryMargin: f64,
3306        ExchangeDeliveryMargin: f64,
3307        ReserveBalance: f64,
3308        CurrencyID: String,
3309        PreFundMortgageIn: f64,
3310        PreFundMortgageOut: f64,
3311        FundMortgageIn: f64,
3312        FundMortgageOut: f64,
3313        FundMortgageAvailable: f64,
3314        MortgageableFund: f64,
3315        SpecProductMargin: f64,
3316        SpecProductFrozenMargin: f64,
3317        SpecProductCommission: f64,
3318        SpecProductFrozenCommission: f64,
3319        SpecProductPositionProfit: f64,
3320        SpecProductCloseProfit: f64,
3321        SpecProductPositionProfitByAlg: f64,
3322        SpecProductExchangeMargin: f64,
3323        FrozenSwap: f64,
3324        RemainSwap: f64,
3325        OptionValue: f64,
3326    }
3327    #[derive(Debug, Clone, Default)]
3328    struct SyncingInvestorPositionField {
3329        is_null: bool,
3330        BrokerID: String,
3331        InvestorID: String,
3332        PosiDirection: u8,
3333        HedgeFlag: u8,
3334        PositionDate: u8,
3335        YdPosition: i32,
3336        Position: i32,
3337        LongFrozen: i32,
3338        ShortFrozen: i32,
3339        LongFrozenAmount: f64,
3340        ShortFrozenAmount: f64,
3341        OpenVolume: i32,
3342        CloseVolume: i32,
3343        OpenAmount: f64,
3344        CloseAmount: f64,
3345        PositionCost: f64,
3346        PreMargin: f64,
3347        UseMargin: f64,
3348        FrozenMargin: f64,
3349        FrozenCash: f64,
3350        FrozenCommission: f64,
3351        CashIn: f64,
3352        Commission: f64,
3353        CloseProfit: f64,
3354        PositionProfit: f64,
3355        PreSettlementPrice: f64,
3356        SettlementPrice: f64,
3357        TradingDay: String,
3358        SettlementID: i32,
3359        OpenCost: f64,
3360        ExchangeMargin: f64,
3361        CombPosition: i32,
3362        CombLongFrozen: i32,
3363        CombShortFrozen: i32,
3364        CloseProfitByDate: f64,
3365        CloseProfitByTrade: f64,
3366        TodayPosition: i32,
3367        MarginRateByMoney: f64,
3368        MarginRateByVolume: f64,
3369        StrikeFrozen: i32,
3370        StrikeFrozenAmount: f64,
3371        AbandonFrozen: i32,
3372        ExchangeID: String,
3373        YdStrikeFrozen: i32,
3374        InvestUnitID: String,
3375        PositionCostOffset: f64,
3376        TasPosition: i32,
3377        TasPositionCost: f64,
3378        InstrumentID: String,
3379    }
3380    #[derive(Debug, Clone, Default)]
3381    struct SyncingInstrumentMarginRateField {
3382        is_null: bool,
3383        InvestorRange: u8,
3384        BrokerID: String,
3385        InvestorID: String,
3386        HedgeFlag: u8,
3387        LongMarginRatioByMoney: f64,
3388        LongMarginRatioByVolume: f64,
3389        ShortMarginRatioByMoney: f64,
3390        ShortMarginRatioByVolume: f64,
3391        IsRelative: i32,
3392        InstrumentID: String,
3393    }
3394    #[derive(Debug, Clone, Default)]
3395    struct SyncingInstrumentCommissionRateField {
3396        is_null: bool,
3397        InvestorRange: u8,
3398        BrokerID: String,
3399        InvestorID: String,
3400        OpenRatioByMoney: f64,
3401        OpenRatioByVolume: f64,
3402        CloseRatioByMoney: f64,
3403        CloseRatioByVolume: f64,
3404        CloseTodayRatioByMoney: f64,
3405        CloseTodayRatioByVolume: f64,
3406        InstrumentID: String,
3407    }
3408    #[derive(Debug, Clone, Default)]
3409    struct SyncingInstrumentTradingRightField {
3410        is_null: bool,
3411        InvestorRange: u8,
3412        BrokerID: String,
3413        InvestorID: String,
3414        TradingRight: u8,
3415        InstrumentID: String,
3416    }
3417    #[derive(Debug, Clone, Default)]
3418    struct QryOrderField {
3419        is_null: bool,
3420        BrokerID: String,
3421        InvestorID: String,
3422        ExchangeID: String,
3423        OrderSysID: String,
3424        InsertTimeStart: String,
3425        InsertTimeEnd: String,
3426        InvestUnitID: String,
3427        InstrumentID: String,
3428    }
3429    #[derive(Debug, Clone, Default)]
3430    struct QryTradeField {
3431        is_null: bool,
3432        BrokerID: String,
3433        InvestorID: String,
3434        ExchangeID: String,
3435        TradeID: String,
3436        TradeTimeStart: String,
3437        TradeTimeEnd: String,
3438        InvestUnitID: String,
3439        InstrumentID: String,
3440    }
3441    #[derive(Debug, Clone, Default)]
3442    struct QryInvestorPositionField {
3443        is_null: bool,
3444        BrokerID: String,
3445        InvestorID: String,
3446        ExchangeID: String,
3447        InvestUnitID: String,
3448        InstrumentID: String,
3449    }
3450    #[derive(Debug, Clone, Default)]
3451    struct QryTradingAccountField {
3452        is_null: bool,
3453        BrokerID: String,
3454        InvestorID: String,
3455        CurrencyID: String,
3456        BizType: u8,
3457        AccountID: String,
3458    }
3459    #[derive(Debug, Clone, Default)]
3460    struct QryInvestorField {
3461        is_null: bool,
3462        BrokerID: String,
3463        InvestorID: String,
3464    }
3465    #[derive(Debug, Clone, Default)]
3466    struct QryTradingCodeField {
3467        is_null: bool,
3468        BrokerID: String,
3469        InvestorID: String,
3470        ExchangeID: String,
3471        ClientID: String,
3472        ClientIDType: u8,
3473        InvestUnitID: String,
3474    }
3475    #[derive(Debug, Clone, Default)]
3476    struct QryInvestorGroupField {
3477        is_null: bool,
3478        BrokerID: String,
3479    }
3480    #[derive(Debug, Clone, Default)]
3481    struct QryInstrumentMarginRateField {
3482        is_null: bool,
3483        BrokerID: String,
3484        InvestorID: String,
3485        HedgeFlag: u8,
3486        ExchangeID: String,
3487        InvestUnitID: String,
3488        InstrumentID: String,
3489    }
3490    #[derive(Debug, Clone, Default)]
3491    struct QryInstrumentCommissionRateField {
3492        is_null: bool,
3493        BrokerID: String,
3494        InvestorID: String,
3495        ExchangeID: String,
3496        InvestUnitID: String,
3497        InstrumentID: String,
3498    }
3499    #[derive(Debug, Clone, Default)]
3500    struct QryInstrumentTradingRightField {
3501        is_null: bool,
3502        BrokerID: String,
3503        InvestorID: String,
3504        InstrumentID: String,
3505    }
3506    #[derive(Debug, Clone, Default)]
3507    struct QryBrokerField {
3508        is_null: bool,
3509        BrokerID: String,
3510    }
3511    #[derive(Debug, Clone, Default)]
3512    struct QryTraderField {
3513        is_null: bool,
3514        ExchangeID: String,
3515        ParticipantID: String,
3516        TraderID: String,
3517    }
3518    #[derive(Debug, Clone, Default)]
3519    struct QrySuperUserFunctionField {
3520        is_null: bool,
3521        UserID: String,
3522    }
3523    #[derive(Debug, Clone, Default)]
3524    struct QryUserSessionField {
3525        is_null: bool,
3526        FrontID: i32,
3527        SessionID: i32,
3528        BrokerID: String,
3529        UserID: String,
3530    }
3531    #[derive(Debug, Clone, Default)]
3532    struct QryPartBrokerField {
3533        is_null: bool,
3534        ExchangeID: String,
3535        BrokerID: String,
3536        ParticipantID: String,
3537    }
3538    #[derive(Debug, Clone, Default)]
3539    struct QryFrontStatusField {
3540        is_null: bool,
3541        FrontID: i32,
3542    }
3543    #[derive(Debug, Clone, Default)]
3544    struct QryExchangeOrderField {
3545        is_null: bool,
3546        ParticipantID: String,
3547        ClientID: String,
3548        ExchangeID: String,
3549        TraderID: String,
3550        ExchangeInstID: String,
3551    }
3552    #[derive(Debug, Clone, Default)]
3553    struct QryOrderActionField {
3554        is_null: bool,
3555        BrokerID: String,
3556        InvestorID: String,
3557        ExchangeID: String,
3558    }
3559    #[derive(Debug, Clone, Default)]
3560    struct QryExchangeOrderActionField {
3561        is_null: bool,
3562        ParticipantID: String,
3563        ClientID: String,
3564        ExchangeID: String,
3565        TraderID: String,
3566    }
3567    #[derive(Debug, Clone, Default)]
3568    struct QrySuperUserField {
3569        is_null: bool,
3570        UserID: String,
3571    }
3572    #[derive(Debug, Clone, Default)]
3573    struct QryExchangeField {
3574        is_null: bool,
3575        ExchangeID: String,
3576    }
3577    #[derive(Debug, Clone, Default)]
3578    struct QryProductField {
3579        is_null: bool,
3580        ProductClass: u8,
3581        ExchangeID: String,
3582        ProductID: String,
3583    }
3584    #[derive(Debug, Clone, Default)]
3585    struct QryInstrumentField {
3586        is_null: bool,
3587        ExchangeID: String,
3588        InstrumentID: String,
3589        ExchangeInstID: String,
3590        ProductID: String,
3591    }
3592    #[derive(Debug, Clone, Default)]
3593    struct QryDepthMarketDataField {
3594        is_null: bool,
3595        ExchangeID: String,
3596        InstrumentID: String,
3597        ProductClass: u8,
3598    }
3599    #[derive(Debug, Clone, Default)]
3600    struct QryBrokerUserField {
3601        is_null: bool,
3602        BrokerID: String,
3603        UserID: String,
3604    }
3605    #[derive(Debug, Clone, Default)]
3606    struct QryBrokerUserFunctionField {
3607        is_null: bool,
3608        BrokerID: String,
3609        UserID: String,
3610    }
3611    #[derive(Debug, Clone, Default)]
3612    struct QryTraderOfferField {
3613        is_null: bool,
3614        ExchangeID: String,
3615        ParticipantID: String,
3616        TraderID: String,
3617    }
3618    #[derive(Debug, Clone, Default)]
3619    struct QrySyncDepositField {
3620        is_null: bool,
3621        BrokerID: String,
3622        DepositSeqNo: Vec<u8>,
3623    }
3624    #[derive(Debug, Clone, Default)]
3625    struct QrySettlementInfoField {
3626        is_null: bool,
3627        BrokerID: String,
3628        InvestorID: String,
3629        TradingDay: String,
3630        AccountID: String,
3631        CurrencyID: String,
3632    }
3633    #[derive(Debug, Clone, Default)]
3634    struct QryExchangeMarginRateField {
3635        is_null: bool,
3636        BrokerID: String,
3637        HedgeFlag: u8,
3638        ExchangeID: String,
3639        InstrumentID: String,
3640    }
3641    #[derive(Debug, Clone, Default)]
3642    struct QryExchangeMarginRateAdjustField {
3643        is_null: bool,
3644        BrokerID: String,
3645        HedgeFlag: u8,
3646        InstrumentID: String,
3647    }
3648    #[derive(Debug, Clone, Default)]
3649    struct QryExchangeRateField {
3650        is_null: bool,
3651        BrokerID: String,
3652        FromCurrencyID: String,
3653        ToCurrencyID: String,
3654    }
3655    #[derive(Debug, Clone, Default)]
3656    struct QrySyncFundMortgageField {
3657        is_null: bool,
3658        BrokerID: String,
3659        MortgageSeqNo: Vec<u8>,
3660    }
3661    #[derive(Debug, Clone, Default)]
3662    struct QryHisOrderField {
3663        is_null: bool,
3664        BrokerID: String,
3665        InvestorID: String,
3666        ExchangeID: String,
3667        OrderSysID: String,
3668        InsertTimeStart: String,
3669        InsertTimeEnd: String,
3670        TradingDay: String,
3671        SettlementID: i32,
3672        InstrumentID: String,
3673    }
3674    #[derive(Debug, Clone, Default)]
3675    struct OptionInstrMiniMarginField {
3676        is_null: bool,
3677        InvestorRange: u8,
3678        BrokerID: String,
3679        InvestorID: String,
3680        MinMargin: f64,
3681        ValueMethod: u8,
3682        IsRelative: i32,
3683        InstrumentID: String,
3684    }
3685    #[derive(Debug, Clone, Default)]
3686    struct OptionInstrMarginAdjustField {
3687        is_null: bool,
3688        InvestorRange: u8,
3689        BrokerID: String,
3690        InvestorID: String,
3691        SShortMarginRatioByMoney: f64,
3692        SShortMarginRatioByVolume: f64,
3693        HShortMarginRatioByMoney: f64,
3694        HShortMarginRatioByVolume: f64,
3695        AShortMarginRatioByMoney: f64,
3696        AShortMarginRatioByVolume: f64,
3697        IsRelative: i32,
3698        MShortMarginRatioByMoney: f64,
3699        MShortMarginRatioByVolume: f64,
3700        InstrumentID: String,
3701    }
3702    #[derive(Debug, Clone, Default)]
3703    struct OptionInstrCommRateField {
3704        is_null: bool,
3705        InvestorRange: u8,
3706        BrokerID: String,
3707        InvestorID: String,
3708        OpenRatioByMoney: f64,
3709        OpenRatioByVolume: f64,
3710        CloseRatioByMoney: f64,
3711        CloseRatioByVolume: f64,
3712        CloseTodayRatioByMoney: f64,
3713        CloseTodayRatioByVolume: f64,
3714        StrikeRatioByMoney: f64,
3715        StrikeRatioByVolume: f64,
3716        ExchangeID: String,
3717        InvestUnitID: String,
3718        InstrumentID: String,
3719    }
3720    #[derive(Debug, Clone, Default)]
3721    struct OptionInstrTradeCostField {
3722        is_null: bool,
3723        BrokerID: String,
3724        InvestorID: String,
3725        HedgeFlag: u8,
3726        FixedMargin: f64,
3727        MiniMargin: f64,
3728        Royalty: f64,
3729        ExchFixedMargin: f64,
3730        ExchMiniMargin: f64,
3731        ExchangeID: String,
3732        InvestUnitID: String,
3733        InstrumentID: String,
3734    }
3735    #[derive(Debug, Clone, Default)]
3736    struct QryOptionInstrTradeCostField {
3737        is_null: bool,
3738        BrokerID: String,
3739        InvestorID: String,
3740        HedgeFlag: u8,
3741        InputPrice: f64,
3742        UnderlyingPrice: f64,
3743        ExchangeID: String,
3744        InvestUnitID: String,
3745        InstrumentID: String,
3746    }
3747    #[derive(Debug, Clone, Default)]
3748    struct QryOptionInstrCommRateField {
3749        is_null: bool,
3750        BrokerID: String,
3751        InvestorID: String,
3752        ExchangeID: String,
3753        InvestUnitID: String,
3754        InstrumentID: String,
3755    }
3756    #[derive(Debug, Clone, Default)]
3757    struct IndexPriceField {
3758        is_null: bool,
3759        BrokerID: String,
3760        ClosePrice: f64,
3761        InstrumentID: String,
3762    }
3763    #[derive(Debug, Clone, Default)]
3764    struct InputExecOrderField {
3765        is_null: bool,
3766        BrokerID: String,
3767        InvestorID: String,
3768        ExecOrderRef: String,
3769        UserID: String,
3770        Volume: i32,
3771        RequestID: i32,
3772        BusinessUnit: String,
3773        OffsetFlag: u8,
3774        HedgeFlag: u8,
3775        ActionType: u8,
3776        PosiDirection: u8,
3777        ReservePositionFlag: u8,
3778        CloseFlag: u8,
3779        ExchangeID: String,
3780        InvestUnitID: String,
3781        AccountID: String,
3782        CurrencyID: String,
3783        ClientID: String,
3784        MacAddress: String,
3785        InstrumentID: String,
3786        IPAddress: String,
3787    }
3788    #[derive(Debug, Clone, Default)]
3789    struct InputExecOrderActionField {
3790        is_null: bool,
3791        BrokerID: String,
3792        InvestorID: String,
3793        ExecOrderActionRef: i32,
3794        ExecOrderRef: String,
3795        RequestID: i32,
3796        FrontID: i32,
3797        SessionID: i32,
3798        ExchangeID: String,
3799        ExecOrderSysID: String,
3800        ActionFlag: u8,
3801        UserID: String,
3802        InvestUnitID: String,
3803        MacAddress: String,
3804        InstrumentID: String,
3805        IPAddress: String,
3806    }
3807    #[derive(Debug, Clone, Default)]
3808    struct ExecOrderField {
3809        is_null: bool,
3810        BrokerID: String,
3811        InvestorID: String,
3812        ExecOrderRef: String,
3813        UserID: String,
3814        Volume: i32,
3815        RequestID: i32,
3816        BusinessUnit: String,
3817        OffsetFlag: u8,
3818        HedgeFlag: u8,
3819        ActionType: u8,
3820        PosiDirection: u8,
3821        ReservePositionFlag: u8,
3822        CloseFlag: u8,
3823        ExecOrderLocalID: String,
3824        ExchangeID: String,
3825        ParticipantID: String,
3826        ClientID: String,
3827        TraderID: String,
3828        InstallID: i32,
3829        OrderSubmitStatus: u8,
3830        NotifySequence: i32,
3831        TradingDay: String,
3832        SettlementID: i32,
3833        ExecOrderSysID: String,
3834        InsertDate: String,
3835        InsertTime: String,
3836        CancelTime: String,
3837        ExecResult: u8,
3838        ClearingPartID: String,
3839        SequenceNo: i32,
3840        FrontID: i32,
3841        SessionID: i32,
3842        UserProductInfo: String,
3843        StatusMsg: String,
3844        ActiveUserID: String,
3845        BrokerExecOrderSeq: i32,
3846        BranchID: String,
3847        InvestUnitID: String,
3848        AccountID: String,
3849        CurrencyID: String,
3850        MacAddress: String,
3851        InstrumentID: String,
3852        ExchangeInstID: String,
3853        IPAddress: String,
3854    }
3855    #[derive(Debug, Clone, Default)]
3856    struct ExecOrderActionField {
3857        is_null: bool,
3858        BrokerID: String,
3859        InvestorID: String,
3860        ExecOrderActionRef: i32,
3861        ExecOrderRef: String,
3862        RequestID: i32,
3863        FrontID: i32,
3864        SessionID: i32,
3865        ExchangeID: String,
3866        ExecOrderSysID: String,
3867        ActionFlag: u8,
3868        ActionDate: String,
3869        ActionTime: String,
3870        TraderID: String,
3871        InstallID: i32,
3872        ExecOrderLocalID: String,
3873        ActionLocalID: String,
3874        ParticipantID: String,
3875        ClientID: String,
3876        BusinessUnit: String,
3877        OrderActionStatus: u8,
3878        UserID: String,
3879        ActionType: u8,
3880        StatusMsg: String,
3881        BranchID: String,
3882        InvestUnitID: String,
3883        MacAddress: String,
3884        InstrumentID: String,
3885        IPAddress: String,
3886    }
3887    #[derive(Debug, Clone, Default)]
3888    struct QryExecOrderField {
3889        is_null: bool,
3890        BrokerID: String,
3891        InvestorID: String,
3892        ExchangeID: String,
3893        ExecOrderSysID: String,
3894        InsertTimeStart: String,
3895        InsertTimeEnd: String,
3896        InstrumentID: String,
3897    }
3898    #[derive(Debug, Clone, Default)]
3899    struct ExchangeExecOrderField {
3900        is_null: bool,
3901        Volume: i32,
3902        RequestID: i32,
3903        BusinessUnit: String,
3904        OffsetFlag: u8,
3905        HedgeFlag: u8,
3906        ActionType: u8,
3907        PosiDirection: u8,
3908        ReservePositionFlag: u8,
3909        CloseFlag: u8,
3910        ExecOrderLocalID: String,
3911        ExchangeID: String,
3912        ParticipantID: String,
3913        ClientID: String,
3914        TraderID: String,
3915        InstallID: i32,
3916        OrderSubmitStatus: u8,
3917        NotifySequence: i32,
3918        TradingDay: String,
3919        SettlementID: i32,
3920        ExecOrderSysID: String,
3921        InsertDate: String,
3922        InsertTime: String,
3923        CancelTime: String,
3924        ExecResult: u8,
3925        ClearingPartID: String,
3926        SequenceNo: i32,
3927        BranchID: String,
3928        MacAddress: String,
3929        ExchangeInstID: String,
3930        IPAddress: String,
3931    }
3932    #[derive(Debug, Clone, Default)]
3933    struct QryExchangeExecOrderField {
3934        is_null: bool,
3935        ParticipantID: String,
3936        ClientID: String,
3937        ExchangeID: String,
3938        TraderID: String,
3939        ExchangeInstID: String,
3940    }
3941    #[derive(Debug, Clone, Default)]
3942    struct QryExecOrderActionField {
3943        is_null: bool,
3944        BrokerID: String,
3945        InvestorID: String,
3946        ExchangeID: String,
3947    }
3948    #[derive(Debug, Clone, Default)]
3949    struct ExchangeExecOrderActionField {
3950        is_null: bool,
3951        ExchangeID: String,
3952        ExecOrderSysID: String,
3953        ActionFlag: u8,
3954        ActionDate: String,
3955        ActionTime: String,
3956        TraderID: String,
3957        InstallID: i32,
3958        ExecOrderLocalID: String,
3959        ActionLocalID: String,
3960        ParticipantID: String,
3961        ClientID: String,
3962        BusinessUnit: String,
3963        OrderActionStatus: u8,
3964        UserID: String,
3965        ActionType: u8,
3966        BranchID: String,
3967        MacAddress: String,
3968        Volume: i32,
3969        IPAddress: String,
3970        ExchangeInstID: String,
3971    }
3972    #[derive(Debug, Clone, Default)]
3973    struct QryExchangeExecOrderActionField {
3974        is_null: bool,
3975        ParticipantID: String,
3976        ClientID: String,
3977        ExchangeID: String,
3978        TraderID: String,
3979    }
3980    #[derive(Debug, Clone, Default)]
3981    struct ErrExecOrderField {
3982        is_null: bool,
3983        BrokerID: String,
3984        InvestorID: String,
3985        ExecOrderRef: String,
3986        UserID: String,
3987        Volume: i32,
3988        RequestID: i32,
3989        BusinessUnit: String,
3990        OffsetFlag: u8,
3991        HedgeFlag: u8,
3992        ActionType: u8,
3993        PosiDirection: u8,
3994        ReservePositionFlag: u8,
3995        CloseFlag: u8,
3996        ExchangeID: String,
3997        InvestUnitID: String,
3998        AccountID: String,
3999        CurrencyID: String,
4000        ClientID: String,
4001        MacAddress: String,
4002        ErrorID: i32,
4003        ErrorMsg: String,
4004        InstrumentID: String,
4005        IPAddress: String,
4006    }
4007    #[derive(Debug, Clone, Default)]
4008    struct QryErrExecOrderField {
4009        is_null: bool,
4010        BrokerID: String,
4011        InvestorID: String,
4012    }
4013    #[derive(Debug, Clone, Default)]
4014    struct ErrExecOrderActionField {
4015        is_null: bool,
4016        BrokerID: String,
4017        InvestorID: String,
4018        ExecOrderActionRef: i32,
4019        ExecOrderRef: String,
4020        RequestID: i32,
4021        FrontID: i32,
4022        SessionID: i32,
4023        ExchangeID: String,
4024        ExecOrderSysID: String,
4025        ActionFlag: u8,
4026        UserID: String,
4027        InvestUnitID: String,
4028        MacAddress: String,
4029        ErrorID: i32,
4030        ErrorMsg: String,
4031        InstrumentID: String,
4032        IPAddress: String,
4033    }
4034    #[derive(Debug, Clone, Default)]
4035    struct QryErrExecOrderActionField {
4036        is_null: bool,
4037        BrokerID: String,
4038        InvestorID: String,
4039    }
4040    #[derive(Debug, Clone, Default)]
4041    struct OptionInstrTradingRightField {
4042        is_null: bool,
4043        InvestorRange: u8,
4044        BrokerID: String,
4045        InvestorID: String,
4046        Direction: u8,
4047        TradingRight: u8,
4048        InstrumentID: String,
4049    }
4050    #[derive(Debug, Clone, Default)]
4051    struct QryOptionInstrTradingRightField {
4052        is_null: bool,
4053        BrokerID: String,
4054        InvestorID: String,
4055        Direction: u8,
4056        InstrumentID: String,
4057    }
4058    #[derive(Debug, Clone, Default)]
4059    struct InputForQuoteField {
4060        is_null: bool,
4061        BrokerID: String,
4062        InvestorID: String,
4063        ForQuoteRef: String,
4064        UserID: String,
4065        ExchangeID: String,
4066        InvestUnitID: String,
4067        MacAddress: String,
4068        InstrumentID: String,
4069        IPAddress: String,
4070    }
4071    #[derive(Debug, Clone, Default)]
4072    struct ForQuoteField {
4073        is_null: bool,
4074        BrokerID: String,
4075        InvestorID: String,
4076        ForQuoteRef: String,
4077        UserID: String,
4078        ForQuoteLocalID: String,
4079        ExchangeID: String,
4080        ParticipantID: String,
4081        ClientID: String,
4082        TraderID: String,
4083        InstallID: i32,
4084        InsertDate: String,
4085        InsertTime: String,
4086        ForQuoteStatus: u8,
4087        FrontID: i32,
4088        SessionID: i32,
4089        StatusMsg: String,
4090        ActiveUserID: String,
4091        BrokerForQutoSeq: i32,
4092        InvestUnitID: String,
4093        MacAddress: String,
4094        InstrumentID: String,
4095        ExchangeInstID: String,
4096        IPAddress: String,
4097    }
4098    #[derive(Debug, Clone, Default)]
4099    struct QryForQuoteField {
4100        is_null: bool,
4101        BrokerID: String,
4102        InvestorID: String,
4103        ExchangeID: String,
4104        InsertTimeStart: String,
4105        InsertTimeEnd: String,
4106        InvestUnitID: String,
4107        InstrumentID: String,
4108    }
4109    #[derive(Debug, Clone, Default)]
4110    struct ExchangeForQuoteField {
4111        is_null: bool,
4112        ForQuoteLocalID: String,
4113        ExchangeID: String,
4114        ParticipantID: String,
4115        ClientID: String,
4116        TraderID: String,
4117        InstallID: i32,
4118        InsertDate: String,
4119        InsertTime: String,
4120        ForQuoteStatus: u8,
4121        MacAddress: String,
4122        ExchangeInstID: String,
4123        IPAddress: String,
4124    }
4125    #[derive(Debug, Clone, Default)]
4126    struct QryExchangeForQuoteField {
4127        is_null: bool,
4128        ParticipantID: String,
4129        ClientID: String,
4130        ExchangeID: String,
4131        TraderID: String,
4132        ExchangeInstID: String,
4133    }
4134    #[derive(Debug, Clone, Default)]
4135    struct InputQuoteField {
4136        is_null: bool,
4137        BrokerID: String,
4138        InvestorID: String,
4139        QuoteRef: String,
4140        UserID: String,
4141        AskPrice: f64,
4142        BidPrice: f64,
4143        AskVolume: i32,
4144        BidVolume: i32,
4145        RequestID: i32,
4146        BusinessUnit: String,
4147        AskOffsetFlag: u8,
4148        BidOffsetFlag: u8,
4149        AskHedgeFlag: u8,
4150        BidHedgeFlag: u8,
4151        AskOrderRef: String,
4152        BidOrderRef: String,
4153        ForQuoteSysID: String,
4154        ExchangeID: String,
4155        InvestUnitID: String,
4156        ClientID: String,
4157        MacAddress: String,
4158        InstrumentID: String,
4159        IPAddress: String,
4160        ReplaceSysID: String,
4161        TimeCondition: u8,
4162        OrderMemo: String,
4163        SessionReqSeq: i32,
4164    }
4165    #[derive(Debug, Clone, Default)]
4166    struct InputQuoteActionField {
4167        is_null: bool,
4168        BrokerID: String,
4169        InvestorID: String,
4170        QuoteActionRef: i32,
4171        QuoteRef: String,
4172        RequestID: i32,
4173        FrontID: i32,
4174        SessionID: i32,
4175        ExchangeID: String,
4176        QuoteSysID: String,
4177        ActionFlag: u8,
4178        UserID: String,
4179        InvestUnitID: String,
4180        ClientID: String,
4181        MacAddress: String,
4182        InstrumentID: String,
4183        IPAddress: String,
4184        OrderMemo: String,
4185        SessionReqSeq: i32,
4186    }
4187    #[derive(Debug, Clone, Default)]
4188    struct QuoteField {
4189        is_null: bool,
4190        BrokerID: String,
4191        InvestorID: String,
4192        QuoteRef: String,
4193        UserID: String,
4194        AskPrice: f64,
4195        BidPrice: f64,
4196        AskVolume: i32,
4197        BidVolume: i32,
4198        RequestID: i32,
4199        BusinessUnit: String,
4200        AskOffsetFlag: u8,
4201        BidOffsetFlag: u8,
4202        AskHedgeFlag: u8,
4203        BidHedgeFlag: u8,
4204        QuoteLocalID: String,
4205        ExchangeID: String,
4206        ParticipantID: String,
4207        ClientID: String,
4208        TraderID: String,
4209        InstallID: i32,
4210        NotifySequence: i32,
4211        OrderSubmitStatus: u8,
4212        TradingDay: String,
4213        SettlementID: i32,
4214        QuoteSysID: String,
4215        InsertDate: String,
4216        InsertTime: String,
4217        CancelTime: String,
4218        QuoteStatus: u8,
4219        ClearingPartID: String,
4220        SequenceNo: i32,
4221        AskOrderSysID: String,
4222        BidOrderSysID: String,
4223        FrontID: i32,
4224        SessionID: i32,
4225        UserProductInfo: String,
4226        StatusMsg: String,
4227        ActiveUserID: String,
4228        BrokerQuoteSeq: i32,
4229        AskOrderRef: String,
4230        BidOrderRef: String,
4231        ForQuoteSysID: String,
4232        BranchID: String,
4233        InvestUnitID: String,
4234        AccountID: String,
4235        CurrencyID: String,
4236        MacAddress: String,
4237        InstrumentID: String,
4238        ExchangeInstID: String,
4239        IPAddress: String,
4240        ReplaceSysID: String,
4241        TimeCondition: u8,
4242        OrderMemo: String,
4243        SessionReqSeq: i32,
4244    }
4245    #[derive(Debug, Clone, Default)]
4246    struct QuoteActionField {
4247        is_null: bool,
4248        BrokerID: String,
4249        InvestorID: String,
4250        QuoteActionRef: i32,
4251        QuoteRef: String,
4252        RequestID: i32,
4253        FrontID: i32,
4254        SessionID: i32,
4255        ExchangeID: String,
4256        QuoteSysID: String,
4257        ActionFlag: u8,
4258        ActionDate: String,
4259        ActionTime: String,
4260        TraderID: String,
4261        InstallID: i32,
4262        QuoteLocalID: String,
4263        ActionLocalID: String,
4264        ParticipantID: String,
4265        ClientID: String,
4266        BusinessUnit: String,
4267        OrderActionStatus: u8,
4268        UserID: String,
4269        StatusMsg: String,
4270        BranchID: String,
4271        InvestUnitID: String,
4272        MacAddress: String,
4273        InstrumentID: String,
4274        IPAddress: String,
4275        OrderMemo: String,
4276        SessionReqSeq: i32,
4277    }
4278    #[derive(Debug, Clone, Default)]
4279    struct QryQuoteField {
4280        is_null: bool,
4281        BrokerID: String,
4282        InvestorID: String,
4283        ExchangeID: String,
4284        QuoteSysID: String,
4285        InsertTimeStart: String,
4286        InsertTimeEnd: String,
4287        InvestUnitID: String,
4288        InstrumentID: String,
4289    }
4290    #[derive(Debug, Clone, Default)]
4291    struct ExchangeQuoteField {
4292        is_null: bool,
4293        AskPrice: f64,
4294        BidPrice: f64,
4295        AskVolume: i32,
4296        BidVolume: i32,
4297        RequestID: i32,
4298        BusinessUnit: String,
4299        AskOffsetFlag: u8,
4300        BidOffsetFlag: u8,
4301        AskHedgeFlag: u8,
4302        BidHedgeFlag: u8,
4303        QuoteLocalID: String,
4304        ExchangeID: String,
4305        ParticipantID: String,
4306        ClientID: String,
4307        TraderID: String,
4308        InstallID: i32,
4309        NotifySequence: i32,
4310        OrderSubmitStatus: u8,
4311        TradingDay: String,
4312        SettlementID: i32,
4313        QuoteSysID: String,
4314        InsertDate: String,
4315        InsertTime: String,
4316        CancelTime: String,
4317        QuoteStatus: u8,
4318        ClearingPartID: String,
4319        SequenceNo: i32,
4320        AskOrderSysID: String,
4321        BidOrderSysID: String,
4322        ForQuoteSysID: String,
4323        BranchID: String,
4324        MacAddress: String,
4325        ExchangeInstID: String,
4326        IPAddress: String,
4327        TimeCondition: u8,
4328    }
4329    #[derive(Debug, Clone, Default)]
4330    struct QryExchangeQuoteField {
4331        is_null: bool,
4332        ParticipantID: String,
4333        ClientID: String,
4334        ExchangeID: String,
4335        TraderID: String,
4336        ExchangeInstID: String,
4337    }
4338    #[derive(Debug, Clone, Default)]
4339    struct QryQuoteActionField {
4340        is_null: bool,
4341        BrokerID: String,
4342        InvestorID: String,
4343        ExchangeID: String,
4344    }
4345    #[derive(Debug, Clone, Default)]
4346    struct ExchangeQuoteActionField {
4347        is_null: bool,
4348        ExchangeID: String,
4349        QuoteSysID: String,
4350        ActionFlag: u8,
4351        ActionDate: String,
4352        ActionTime: String,
4353        TraderID: String,
4354        InstallID: i32,
4355        QuoteLocalID: String,
4356        ActionLocalID: String,
4357        ParticipantID: String,
4358        ClientID: String,
4359        BusinessUnit: String,
4360        OrderActionStatus: u8,
4361        UserID: String,
4362        MacAddress: String,
4363        IPAddress: String,
4364    }
4365    #[derive(Debug, Clone, Default)]
4366    struct QryExchangeQuoteActionField {
4367        is_null: bool,
4368        ParticipantID: String,
4369        ClientID: String,
4370        ExchangeID: String,
4371        TraderID: String,
4372    }
4373    #[derive(Debug, Clone, Default)]
4374    struct OptionInstrDeltaField {
4375        is_null: bool,
4376        InvestorRange: u8,
4377        BrokerID: String,
4378        InvestorID: String,
4379        Delta: f64,
4380        InstrumentID: String,
4381    }
4382    #[derive(Debug, Clone, Default)]
4383    struct ForQuoteRspField {
4384        is_null: bool,
4385        TradingDay: String,
4386        ForQuoteSysID: String,
4387        ForQuoteTime: String,
4388        ActionDay: String,
4389        ExchangeID: String,
4390        InstrumentID: String,
4391    }
4392    #[derive(Debug, Clone, Default)]
4393    struct StrikeOffsetField {
4394        is_null: bool,
4395        InvestorRange: u8,
4396        BrokerID: String,
4397        InvestorID: String,
4398        Offset: f64,
4399        OffsetType: u8,
4400        InstrumentID: String,
4401    }
4402    #[derive(Debug, Clone, Default)]
4403    struct QryStrikeOffsetField {
4404        is_null: bool,
4405        BrokerID: String,
4406        InvestorID: String,
4407        InstrumentID: String,
4408    }
4409    #[derive(Debug, Clone, Default)]
4410    struct InputBatchOrderActionField {
4411        is_null: bool,
4412        BrokerID: String,
4413        InvestorID: String,
4414        OrderActionRef: i32,
4415        RequestID: i32,
4416        FrontID: i32,
4417        SessionID: i32,
4418        ExchangeID: String,
4419        UserID: String,
4420        InvestUnitID: String,
4421        MacAddress: String,
4422        IPAddress: String,
4423    }
4424    #[derive(Debug, Clone, Default)]
4425    struct BatchOrderActionField {
4426        is_null: bool,
4427        BrokerID: String,
4428        InvestorID: String,
4429        OrderActionRef: i32,
4430        RequestID: i32,
4431        FrontID: i32,
4432        SessionID: i32,
4433        ExchangeID: String,
4434        ActionDate: String,
4435        ActionTime: String,
4436        TraderID: String,
4437        InstallID: i32,
4438        ActionLocalID: String,
4439        ParticipantID: String,
4440        ClientID: String,
4441        BusinessUnit: String,
4442        OrderActionStatus: u8,
4443        UserID: String,
4444        StatusMsg: String,
4445        InvestUnitID: String,
4446        MacAddress: String,
4447        IPAddress: String,
4448    }
4449    #[derive(Debug, Clone, Default)]
4450    struct ExchangeBatchOrderActionField {
4451        is_null: bool,
4452        ExchangeID: String,
4453        ActionDate: String,
4454        ActionTime: String,
4455        TraderID: String,
4456        InstallID: i32,
4457        ActionLocalID: String,
4458        ParticipantID: String,
4459        ClientID: String,
4460        BusinessUnit: String,
4461        OrderActionStatus: u8,
4462        UserID: String,
4463        MacAddress: String,
4464        IPAddress: String,
4465    }
4466    #[derive(Debug, Clone, Default)]
4467    struct QryBatchOrderActionField {
4468        is_null: bool,
4469        BrokerID: String,
4470        InvestorID: String,
4471        ExchangeID: String,
4472    }
4473    #[derive(Debug, Clone, Default)]
4474    struct CombInstrumentGuardField {
4475        is_null: bool,
4476        BrokerID: String,
4477        GuarantRatio: f64,
4478        ExchangeID: String,
4479        InstrumentID: String,
4480    }
4481    #[derive(Debug, Clone, Default)]
4482    struct QryCombInstrumentGuardField {
4483        is_null: bool,
4484        BrokerID: String,
4485        ExchangeID: String,
4486        InstrumentID: String,
4487    }
4488    #[derive(Debug, Clone, Default)]
4489    struct InputCombActionField {
4490        is_null: bool,
4491        BrokerID: String,
4492        InvestorID: String,
4493        CombActionRef: String,
4494        UserID: String,
4495        Direction: u8,
4496        Volume: i32,
4497        CombDirection: u8,
4498        HedgeFlag: u8,
4499        ExchangeID: String,
4500        MacAddress: String,
4501        InvestUnitID: String,
4502        FrontID: i32,
4503        SessionID: i32,
4504        InstrumentID: String,
4505        IPAddress: String,
4506    }
4507    #[derive(Debug, Clone, Default)]
4508    struct CombActionField {
4509        is_null: bool,
4510        BrokerID: String,
4511        InvestorID: String,
4512        CombActionRef: String,
4513        UserID: String,
4514        Direction: u8,
4515        Volume: i32,
4516        CombDirection: u8,
4517        HedgeFlag: u8,
4518        ActionLocalID: String,
4519        ExchangeID: String,
4520        ParticipantID: String,
4521        ClientID: String,
4522        TraderID: String,
4523        InstallID: i32,
4524        ActionStatus: u8,
4525        NotifySequence: i32,
4526        TradingDay: String,
4527        SettlementID: i32,
4528        SequenceNo: i32,
4529        FrontID: i32,
4530        SessionID: i32,
4531        UserProductInfo: String,
4532        StatusMsg: String,
4533        MacAddress: String,
4534        ComTradeID: String,
4535        BranchID: String,
4536        InvestUnitID: String,
4537        InstrumentID: String,
4538        ExchangeInstID: String,
4539        IPAddress: String,
4540    }
4541    #[derive(Debug, Clone, Default)]
4542    struct QryCombActionField {
4543        is_null: bool,
4544        BrokerID: String,
4545        InvestorID: String,
4546        ExchangeID: String,
4547        InvestUnitID: String,
4548        InstrumentID: String,
4549    }
4550    #[derive(Debug, Clone, Default)]
4551    struct ExchangeCombActionField {
4552        is_null: bool,
4553        Direction: u8,
4554        Volume: i32,
4555        CombDirection: u8,
4556        HedgeFlag: u8,
4557        ActionLocalID: String,
4558        ExchangeID: String,
4559        ParticipantID: String,
4560        ClientID: String,
4561        TraderID: String,
4562        InstallID: i32,
4563        ActionStatus: u8,
4564        NotifySequence: i32,
4565        TradingDay: String,
4566        SettlementID: i32,
4567        SequenceNo: i32,
4568        MacAddress: String,
4569        ComTradeID: String,
4570        BranchID: String,
4571        ExchangeInstID: String,
4572        IPAddress: String,
4573    }
4574    #[derive(Debug, Clone, Default)]
4575    struct QryExchangeCombActionField {
4576        is_null: bool,
4577        ParticipantID: String,
4578        ClientID: String,
4579        ExchangeID: String,
4580        TraderID: String,
4581        ExchangeInstID: String,
4582    }
4583    #[derive(Debug, Clone, Default)]
4584    struct ProductExchRateField {
4585        is_null: bool,
4586        QuoteCurrencyID: String,
4587        ExchangeRate: f64,
4588        ExchangeID: String,
4589        ProductID: String,
4590    }
4591    #[derive(Debug, Clone, Default)]
4592    struct QryProductExchRateField {
4593        is_null: bool,
4594        ExchangeID: String,
4595        ProductID: String,
4596    }
4597    #[derive(Debug, Clone, Default)]
4598    struct QryForQuoteParamField {
4599        is_null: bool,
4600        BrokerID: String,
4601        ExchangeID: String,
4602        InstrumentID: String,
4603    }
4604    #[derive(Debug, Clone, Default)]
4605    struct ForQuoteParamField {
4606        is_null: bool,
4607        BrokerID: String,
4608        ExchangeID: String,
4609        LastPrice: f64,
4610        PriceInterval: f64,
4611        InstrumentID: String,
4612    }
4613    #[derive(Debug, Clone, Default)]
4614    struct MMOptionInstrCommRateField {
4615        is_null: bool,
4616        InvestorRange: u8,
4617        BrokerID: String,
4618        InvestorID: String,
4619        OpenRatioByMoney: f64,
4620        OpenRatioByVolume: f64,
4621        CloseRatioByMoney: f64,
4622        CloseRatioByVolume: f64,
4623        CloseTodayRatioByMoney: f64,
4624        CloseTodayRatioByVolume: f64,
4625        StrikeRatioByMoney: f64,
4626        StrikeRatioByVolume: f64,
4627        InstrumentID: String,
4628    }
4629    #[derive(Debug, Clone, Default)]
4630    struct QryMMOptionInstrCommRateField {
4631        is_null: bool,
4632        BrokerID: String,
4633        InvestorID: String,
4634        InstrumentID: String,
4635    }
4636    #[derive(Debug, Clone, Default)]
4637    struct MMInstrumentCommissionRateField {
4638        is_null: bool,
4639        InvestorRange: u8,
4640        BrokerID: String,
4641        InvestorID: String,
4642        OpenRatioByMoney: f64,
4643        OpenRatioByVolume: f64,
4644        CloseRatioByMoney: f64,
4645        CloseRatioByVolume: f64,
4646        CloseTodayRatioByMoney: f64,
4647        CloseTodayRatioByVolume: f64,
4648        InstrumentID: String,
4649    }
4650    #[derive(Debug, Clone, Default)]
4651    struct QryMMInstrumentCommissionRateField {
4652        is_null: bool,
4653        BrokerID: String,
4654        InvestorID: String,
4655        InstrumentID: String,
4656    }
4657    #[derive(Debug, Clone, Default)]
4658    struct InstrumentOrderCommRateField {
4659        is_null: bool,
4660        InvestorRange: u8,
4661        BrokerID: String,
4662        InvestorID: String,
4663        HedgeFlag: u8,
4664        OrderCommByVolume: f64,
4665        OrderActionCommByVolume: f64,
4666        ExchangeID: String,
4667        InvestUnitID: String,
4668        InstrumentID: String,
4669        OrderCommByTrade: f64,
4670        OrderActionCommByTrade: f64,
4671    }
4672    #[derive(Debug, Clone, Default)]
4673    struct QryInstrumentOrderCommRateField {
4674        is_null: bool,
4675        BrokerID: String,
4676        InvestorID: String,
4677        InstrumentID: String,
4678    }
4679    #[derive(Debug, Clone, Default)]
4680    struct TradeParamField {
4681        is_null: bool,
4682        BrokerID: String,
4683        TradeParamID: u8,
4684        TradeParamValue: Vec<u8>,
4685        Memo: String,
4686    }
4687    #[derive(Debug, Clone, Default)]
4688    struct InstrumentMarginRateULField {
4689        is_null: bool,
4690        InvestorRange: u8,
4691        BrokerID: String,
4692        InvestorID: String,
4693        HedgeFlag: u8,
4694        LongMarginRatioByMoney: f64,
4695        LongMarginRatioByVolume: f64,
4696        ShortMarginRatioByMoney: f64,
4697        ShortMarginRatioByVolume: f64,
4698        InstrumentID: String,
4699    }
4700    #[derive(Debug, Clone, Default)]
4701    struct FutureLimitPosiParamField {
4702        is_null: bool,
4703        InvestorRange: u8,
4704        BrokerID: String,
4705        InvestorID: String,
4706        SpecOpenVolume: i32,
4707        ArbiOpenVolume: i32,
4708        OpenVolume: i32,
4709        ProductID: String,
4710    }
4711    #[derive(Debug, Clone, Default)]
4712    struct LoginForbiddenIPField {
4713        is_null: bool,
4714        IPAddress: String,
4715    }
4716    #[derive(Debug, Clone, Default)]
4717    struct IPListField {
4718        is_null: bool,
4719        IsWhite: i32,
4720        IPAddress: String,
4721    }
4722    #[derive(Debug, Clone, Default)]
4723    struct InputOptionSelfCloseField {
4724        is_null: bool,
4725        BrokerID: String,
4726        InvestorID: String,
4727        OptionSelfCloseRef: String,
4728        UserID: String,
4729        Volume: i32,
4730        RequestID: i32,
4731        BusinessUnit: String,
4732        HedgeFlag: u8,
4733        OptSelfCloseFlag: u8,
4734        ExchangeID: String,
4735        InvestUnitID: String,
4736        AccountID: String,
4737        CurrencyID: String,
4738        ClientID: String,
4739        MacAddress: String,
4740        InstrumentID: String,
4741        IPAddress: String,
4742    }
4743    #[derive(Debug, Clone, Default)]
4744    struct InputOptionSelfCloseActionField {
4745        is_null: bool,
4746        BrokerID: String,
4747        InvestorID: String,
4748        OptionSelfCloseActionRef: i32,
4749        OptionSelfCloseRef: String,
4750        RequestID: i32,
4751        FrontID: i32,
4752        SessionID: i32,
4753        ExchangeID: String,
4754        OptionSelfCloseSysID: String,
4755        ActionFlag: u8,
4756        UserID: String,
4757        InvestUnitID: String,
4758        MacAddress: String,
4759        InstrumentID: String,
4760        IPAddress: String,
4761    }
4762    #[derive(Debug, Clone, Default)]
4763    struct OptionSelfCloseField {
4764        is_null: bool,
4765        BrokerID: String,
4766        InvestorID: String,
4767        OptionSelfCloseRef: String,
4768        UserID: String,
4769        Volume: i32,
4770        RequestID: i32,
4771        BusinessUnit: String,
4772        HedgeFlag: u8,
4773        OptSelfCloseFlag: u8,
4774        OptionSelfCloseLocalID: String,
4775        ExchangeID: String,
4776        ParticipantID: String,
4777        ClientID: String,
4778        TraderID: String,
4779        InstallID: i32,
4780        OrderSubmitStatus: u8,
4781        NotifySequence: i32,
4782        TradingDay: String,
4783        SettlementID: i32,
4784        OptionSelfCloseSysID: String,
4785        InsertDate: String,
4786        InsertTime: String,
4787        CancelTime: String,
4788        ExecResult: u8,
4789        ClearingPartID: String,
4790        SequenceNo: i32,
4791        FrontID: i32,
4792        SessionID: i32,
4793        UserProductInfo: String,
4794        StatusMsg: String,
4795        ActiveUserID: String,
4796        BrokerOptionSelfCloseSeq: i32,
4797        BranchID: String,
4798        InvestUnitID: String,
4799        AccountID: String,
4800        CurrencyID: String,
4801        MacAddress: String,
4802        InstrumentID: String,
4803        ExchangeInstID: String,
4804        IPAddress: String,
4805    }
4806    #[derive(Debug, Clone, Default)]
4807    struct OptionSelfCloseActionField {
4808        is_null: bool,
4809        BrokerID: String,
4810        InvestorID: String,
4811        OptionSelfCloseActionRef: i32,
4812        OptionSelfCloseRef: String,
4813        RequestID: i32,
4814        FrontID: i32,
4815        SessionID: i32,
4816        ExchangeID: String,
4817        OptionSelfCloseSysID: String,
4818        ActionFlag: u8,
4819        ActionDate: String,
4820        ActionTime: String,
4821        TraderID: String,
4822        InstallID: i32,
4823        OptionSelfCloseLocalID: String,
4824        ActionLocalID: String,
4825        ParticipantID: String,
4826        ClientID: String,
4827        BusinessUnit: String,
4828        OrderActionStatus: u8,
4829        UserID: String,
4830        StatusMsg: String,
4831        BranchID: String,
4832        InvestUnitID: String,
4833        MacAddress: String,
4834        InstrumentID: String,
4835        IPAddress: String,
4836    }
4837    #[derive(Debug, Clone, Default)]
4838    struct QryOptionSelfCloseField {
4839        is_null: bool,
4840        BrokerID: String,
4841        InvestorID: String,
4842        ExchangeID: String,
4843        OptionSelfCloseSysID: String,
4844        InsertTimeStart: String,
4845        InsertTimeEnd: String,
4846        InstrumentID: String,
4847    }
4848    #[derive(Debug, Clone, Default)]
4849    struct ExchangeOptionSelfCloseField {
4850        is_null: bool,
4851        Volume: i32,
4852        RequestID: i32,
4853        BusinessUnit: String,
4854        HedgeFlag: u8,
4855        OptSelfCloseFlag: u8,
4856        OptionSelfCloseLocalID: String,
4857        ExchangeID: String,
4858        ParticipantID: String,
4859        ClientID: String,
4860        TraderID: String,
4861        InstallID: i32,
4862        OrderSubmitStatus: u8,
4863        NotifySequence: i32,
4864        TradingDay: String,
4865        SettlementID: i32,
4866        OptionSelfCloseSysID: String,
4867        InsertDate: String,
4868        InsertTime: String,
4869        CancelTime: String,
4870        ExecResult: u8,
4871        ClearingPartID: String,
4872        SequenceNo: i32,
4873        BranchID: String,
4874        MacAddress: String,
4875        ExchangeInstID: String,
4876        IPAddress: String,
4877    }
4878    #[derive(Debug, Clone, Default)]
4879    struct QryOptionSelfCloseActionField {
4880        is_null: bool,
4881        BrokerID: String,
4882        InvestorID: String,
4883        ExchangeID: String,
4884    }
4885    #[derive(Debug, Clone, Default)]
4886    struct ExchangeOptionSelfCloseActionField {
4887        is_null: bool,
4888        ExchangeID: String,
4889        OptionSelfCloseSysID: String,
4890        ActionFlag: u8,
4891        ActionDate: String,
4892        ActionTime: String,
4893        TraderID: String,
4894        InstallID: i32,
4895        OptionSelfCloseLocalID: String,
4896        ActionLocalID: String,
4897        ParticipantID: String,
4898        ClientID: String,
4899        BusinessUnit: String,
4900        OrderActionStatus: u8,
4901        UserID: String,
4902        BranchID: String,
4903        MacAddress: String,
4904        OptSelfCloseFlag: u8,
4905        IPAddress: String,
4906        ExchangeInstID: String,
4907    }
4908    #[derive(Debug, Clone, Default)]
4909    struct SyncDelaySwapField {
4910        is_null: bool,
4911        DelaySwapSeqNo: Vec<u8>,
4912        BrokerID: String,
4913        InvestorID: String,
4914        FromCurrencyID: String,
4915        FromAmount: f64,
4916        FromFrozenSwap: f64,
4917        FromRemainSwap: f64,
4918        ToCurrencyID: String,
4919        ToAmount: f64,
4920        IsManualSwap: i32,
4921        IsAllRemainSetZero: i32,
4922    }
4923    #[derive(Debug, Clone, Default)]
4924    struct QrySyncDelaySwapField {
4925        is_null: bool,
4926        BrokerID: String,
4927        DelaySwapSeqNo: Vec<u8>,
4928    }
4929    #[derive(Debug, Clone, Default)]
4930    struct InvestUnitField {
4931        is_null: bool,
4932        BrokerID: String,
4933        InvestorID: String,
4934        InvestUnitID: String,
4935        InvestorUnitName: String,
4936        InvestorGroupID: String,
4937        CommModelID: String,
4938        MarginModelID: String,
4939        AccountID: String,
4940        CurrencyID: String,
4941    }
4942    #[derive(Debug, Clone, Default)]
4943    struct QryInvestUnitField {
4944        is_null: bool,
4945        BrokerID: String,
4946        InvestorID: String,
4947        InvestUnitID: String,
4948    }
4949    #[derive(Debug, Clone, Default)]
4950    struct SecAgentCheckModeField {
4951        is_null: bool,
4952        InvestorID: String,
4953        BrokerID: String,
4954        CurrencyID: String,
4955        BrokerSecAgentID: String,
4956        CheckSelfAccount: i32,
4957    }
4958    #[derive(Debug, Clone, Default)]
4959    struct SecAgentTradeInfoField {
4960        is_null: bool,
4961        BrokerID: String,
4962        BrokerSecAgentID: String,
4963        InvestorID: String,
4964        LongCustomerName: String,
4965    }
4966    #[derive(Debug, Clone, Default)]
4967    struct MarketDataField {
4968        is_null: bool,
4969        TradingDay: String,
4970        ExchangeID: String,
4971        LastPrice: f64,
4972        PreSettlementPrice: f64,
4973        PreClosePrice: f64,
4974        PreOpenInterest: f64,
4975        OpenPrice: f64,
4976        HighestPrice: f64,
4977        LowestPrice: f64,
4978        Volume: i32,
4979        Turnover: f64,
4980        OpenInterest: f64,
4981        ClosePrice: f64,
4982        SettlementPrice: f64,
4983        UpperLimitPrice: f64,
4984        LowerLimitPrice: f64,
4985        PreDelta: f64,
4986        CurrDelta: f64,
4987        UpdateTime: String,
4988        UpdateMillisec: i32,
4989        ActionDay: String,
4990        InstrumentID: String,
4991        ExchangeInstID: String,
4992    }
4993    #[derive(Debug, Clone, Default)]
4994    struct MarketDataBaseField {
4995        is_null: bool,
4996        TradingDay: String,
4997        PreSettlementPrice: f64,
4998        PreClosePrice: f64,
4999        PreOpenInterest: f64,
5000        PreDelta: f64,
5001    }
5002    #[derive(Debug, Clone, Default)]
5003    struct MarketDataStaticField {
5004        is_null: bool,
5005        OpenPrice: f64,
5006        HighestPrice: f64,
5007        LowestPrice: f64,
5008        ClosePrice: f64,
5009        UpperLimitPrice: f64,
5010        LowerLimitPrice: f64,
5011        SettlementPrice: f64,
5012        CurrDelta: f64,
5013    }
5014    #[derive(Debug, Clone, Default)]
5015    struct MarketDataLastMatchField {
5016        is_null: bool,
5017        LastPrice: f64,
5018        Volume: i32,
5019        Turnover: f64,
5020        OpenInterest: f64,
5021    }
5022    #[derive(Debug, Clone, Default)]
5023    struct MarketDataBestPriceField {
5024        is_null: bool,
5025        BidPrice1: f64,
5026        BidVolume1: i32,
5027        AskPrice1: f64,
5028        AskVolume1: i32,
5029    }
5030    #[derive(Debug, Clone, Default)]
5031    struct MarketDataBid23Field {
5032        is_null: bool,
5033        BidPrice2: f64,
5034        BidVolume2: i32,
5035        BidPrice3: f64,
5036        BidVolume3: i32,
5037    }
5038    #[derive(Debug, Clone, Default)]
5039    struct MarketDataAsk23Field {
5040        is_null: bool,
5041        AskPrice2: f64,
5042        AskVolume2: i32,
5043        AskPrice3: f64,
5044        AskVolume3: i32,
5045    }
5046    #[derive(Debug, Clone, Default)]
5047    struct MarketDataBid45Field {
5048        is_null: bool,
5049        BidPrice4: f64,
5050        BidVolume4: i32,
5051        BidPrice5: f64,
5052        BidVolume5: i32,
5053    }
5054    #[derive(Debug, Clone, Default)]
5055    struct MarketDataAsk45Field {
5056        is_null: bool,
5057        AskPrice4: f64,
5058        AskVolume4: i32,
5059        AskPrice5: f64,
5060        AskVolume5: i32,
5061    }
5062    #[derive(Debug, Clone, Default)]
5063    struct MarketDataUpdateTimeField {
5064        is_null: bool,
5065        UpdateTime: String,
5066        UpdateMillisec: i32,
5067        ActionDay: String,
5068        InstrumentID: String,
5069    }
5070    #[derive(Debug, Clone, Default)]
5071    struct MarketDataBandingPriceField {
5072        is_null: bool,
5073        BandingUpperPrice: f64,
5074        BandingLowerPrice: f64,
5075    }
5076    #[derive(Debug, Clone, Default)]
5077    struct MarketDataExchangeField {
5078        is_null: bool,
5079        ExchangeID: String,
5080    }
5081    #[derive(Debug, Clone, Default)]
5082    struct SpecificInstrumentField {
5083        is_null: bool,
5084        InstrumentID: String,
5085    }
5086    #[derive(Debug, Clone, Default)]
5087    struct InstrumentStatusField {
5088        is_null: bool,
5089        ExchangeID: String,
5090        SettlementGroupID: String,
5091        InstrumentStatus: u8,
5092        TradingSegmentSN: i32,
5093        EnterTime: String,
5094        EnterReason: u8,
5095        ExchangeInstID: String,
5096        InstrumentID: String,
5097    }
5098    #[derive(Debug, Clone, Default)]
5099    struct QryInstrumentStatusField {
5100        is_null: bool,
5101        ExchangeID: String,
5102        ExchangeInstID: String,
5103    }
5104    #[derive(Debug, Clone, Default)]
5105    struct InvestorAccountField {
5106        is_null: bool,
5107        BrokerID: String,
5108        InvestorID: String,
5109        AccountID: String,
5110        CurrencyID: String,
5111    }
5112    #[derive(Debug, Clone, Default)]
5113    struct PositionProfitAlgorithmField {
5114        is_null: bool,
5115        BrokerID: String,
5116        AccountID: String,
5117        Algorithm: u8,
5118        Memo: String,
5119        CurrencyID: String,
5120    }
5121    #[derive(Debug, Clone, Default)]
5122    struct DiscountField {
5123        is_null: bool,
5124        BrokerID: String,
5125        InvestorRange: u8,
5126        InvestorID: String,
5127        Discount: f64,
5128    }
5129    #[derive(Debug, Clone, Default)]
5130    struct QryTransferBankField {
5131        is_null: bool,
5132        BankID: String,
5133        BankBrchID: String,
5134    }
5135    #[derive(Debug, Clone, Default)]
5136    struct TransferBankField {
5137        is_null: bool,
5138        BankID: String,
5139        BankBrchID: String,
5140        BankName: String,
5141        IsActive: i32,
5142    }
5143    #[derive(Debug, Clone, Default)]
5144    struct QryInvestorPositionDetailField {
5145        is_null: bool,
5146        BrokerID: String,
5147        InvestorID: String,
5148        ExchangeID: String,
5149        InvestUnitID: String,
5150        InstrumentID: String,
5151    }
5152    #[derive(Debug, Clone, Default)]
5153    struct InvestorPositionDetailField {
5154        is_null: bool,
5155        BrokerID: String,
5156        InvestorID: String,
5157        HedgeFlag: u8,
5158        Direction: u8,
5159        OpenDate: String,
5160        TradeID: String,
5161        Volume: i32,
5162        OpenPrice: f64,
5163        TradingDay: String,
5164        SettlementID: i32,
5165        TradeType: u8,
5166        ExchangeID: String,
5167        CloseProfitByDate: f64,
5168        CloseProfitByTrade: f64,
5169        PositionProfitByDate: f64,
5170        PositionProfitByTrade: f64,
5171        Margin: f64,
5172        ExchMargin: f64,
5173        MarginRateByMoney: f64,
5174        MarginRateByVolume: f64,
5175        LastSettlementPrice: f64,
5176        SettlementPrice: f64,
5177        CloseVolume: i32,
5178        CloseAmount: f64,
5179        TimeFirstVolume: i32,
5180        InvestUnitID: String,
5181        SpecPosiType: u8,
5182        InstrumentID: String,
5183        CombInstrumentID: String,
5184    }
5185    #[derive(Debug, Clone, Default)]
5186    struct TradingAccountPasswordField {
5187        is_null: bool,
5188        BrokerID: String,
5189        AccountID: String,
5190        Password: String,
5191        CurrencyID: String,
5192    }
5193    #[derive(Debug, Clone, Default)]
5194    struct MDTraderOfferField {
5195        is_null: bool,
5196        ExchangeID: String,
5197        TraderID: String,
5198        ParticipantID: String,
5199        Password: String,
5200        InstallID: i32,
5201        OrderLocalID: String,
5202        TraderConnectStatus: u8,
5203        ConnectRequestDate: String,
5204        ConnectRequestTime: String,
5205        LastReportDate: String,
5206        LastReportTime: String,
5207        ConnectDate: String,
5208        ConnectTime: String,
5209        StartDate: String,
5210        StartTime: String,
5211        TradingDay: String,
5212        BrokerID: String,
5213        MaxTradeID: String,
5214        MaxOrderMessageReference: Vec<u8>,
5215        OrderCancelAlg: u8,
5216    }
5217    #[derive(Debug, Clone, Default)]
5218    struct QryMDTraderOfferField {
5219        is_null: bool,
5220        ExchangeID: String,
5221        ParticipantID: String,
5222        TraderID: String,
5223    }
5224    #[derive(Debug, Clone, Default)]
5225    struct QryNoticeField {
5226        is_null: bool,
5227        BrokerID: String,
5228    }
5229    #[derive(Debug, Clone, Default)]
5230    struct NoticeField {
5231        is_null: bool,
5232        BrokerID: String,
5233        Content: Vec<u8>,
5234        SequenceLabel: Vec<u8>,
5235    }
5236    #[derive(Debug, Clone, Default)]
5237    struct UserRightField {
5238        is_null: bool,
5239        BrokerID: String,
5240        UserID: String,
5241        UserRightType: u8,
5242        IsForbidden: i32,
5243    }
5244    #[derive(Debug, Clone, Default)]
5245    struct QrySettlementInfoConfirmField {
5246        is_null: bool,
5247        BrokerID: String,
5248        InvestorID: String,
5249        AccountID: String,
5250        CurrencyID: String,
5251    }
5252    #[derive(Debug, Clone, Default)]
5253    struct LoadSettlementInfoField {
5254        is_null: bool,
5255        BrokerID: String,
5256    }
5257    #[derive(Debug, Clone, Default)]
5258    struct BrokerWithdrawAlgorithmField {
5259        is_null: bool,
5260        BrokerID: String,
5261        WithdrawAlgorithm: u8,
5262        UsingRatio: f64,
5263        IncludeCloseProfit: u8,
5264        AllWithoutTrade: u8,
5265        AvailIncludeCloseProfit: u8,
5266        IsBrokerUserEvent: i32,
5267        CurrencyID: String,
5268        FundMortgageRatio: f64,
5269        BalanceAlgorithm: u8,
5270    }
5271    #[derive(Debug, Clone, Default)]
5272    struct TradingAccountPasswordUpdateV1Field {
5273        is_null: bool,
5274        BrokerID: String,
5275        InvestorID: String,
5276        OldPassword: String,
5277        NewPassword: String,
5278    }
5279    #[derive(Debug, Clone, Default)]
5280    struct TradingAccountPasswordUpdateField {
5281        is_null: bool,
5282        BrokerID: String,
5283        AccountID: String,
5284        OldPassword: String,
5285        NewPassword: String,
5286        CurrencyID: String,
5287    }
5288    #[derive(Debug, Clone, Default)]
5289    struct QryCombinationLegField {
5290        is_null: bool,
5291        LegID: i32,
5292        CombInstrumentID: String,
5293        LegInstrumentID: String,
5294    }
5295    #[derive(Debug, Clone, Default)]
5296    struct QrySyncStatusField {
5297        is_null: bool,
5298        TradingDay: String,
5299    }
5300    #[derive(Debug, Clone, Default)]
5301    struct CombinationLegField {
5302        is_null: bool,
5303        LegID: i32,
5304        Direction: u8,
5305        LegMultiple: i32,
5306        ImplyLevel: i32,
5307        CombInstrumentID: String,
5308        LegInstrumentID: String,
5309    }
5310    #[derive(Debug, Clone, Default)]
5311    struct SyncStatusField {
5312        is_null: bool,
5313        TradingDay: String,
5314        DataSyncStatus: u8,
5315    }
5316    #[derive(Debug, Clone, Default)]
5317    struct QryLinkManField {
5318        is_null: bool,
5319        BrokerID: String,
5320        InvestorID: String,
5321    }
5322    #[derive(Debug, Clone, Default)]
5323    struct LinkManField {
5324        is_null: bool,
5325        BrokerID: String,
5326        InvestorID: String,
5327        PersonType: u8,
5328        IdentifiedCardType: u8,
5329        IdentifiedCardNo: String,
5330        PersonName: String,
5331        Telephone: String,
5332        Address: String,
5333        ZipCode: String,
5334        Priority: i32,
5335        UOAZipCode: String,
5336        PersonFullName: String,
5337    }
5338    #[derive(Debug, Clone, Default)]
5339    struct QryBrokerUserEventField {
5340        is_null: bool,
5341        BrokerID: String,
5342        UserID: String,
5343        UserEventType: u8,
5344    }
5345    #[derive(Debug, Clone, Default)]
5346    struct BrokerUserEventField {
5347        is_null: bool,
5348        BrokerID: String,
5349        UserID: String,
5350        UserEventType: u8,
5351        EventSequenceNo: i32,
5352        EventDate: String,
5353        EventTime: String,
5354        UserEventInfo: String,
5355        InvestorID: String,
5356        InstrumentID: String,
5357        DRIdentityID: i32,
5358        TradingDay: String,
5359    }
5360    #[derive(Debug, Clone, Default)]
5361    struct QryContractBankField {
5362        is_null: bool,
5363        BrokerID: String,
5364        BankID: String,
5365        BankBrchID: String,
5366    }
5367    #[derive(Debug, Clone, Default)]
5368    struct ContractBankField {
5369        is_null: bool,
5370        BrokerID: String,
5371        BankID: String,
5372        BankBrchID: String,
5373        BankName: String,
5374    }
5375    #[derive(Debug, Clone, Default)]
5376    struct InvestorPositionCombineDetailField {
5377        is_null: bool,
5378        TradingDay: String,
5379        OpenDate: String,
5380        ExchangeID: String,
5381        SettlementID: i32,
5382        BrokerID: String,
5383        InvestorID: String,
5384        ComTradeID: String,
5385        TradeID: String,
5386        HedgeFlag: u8,
5387        Direction: u8,
5388        TotalAmt: i32,
5389        Margin: f64,
5390        ExchMargin: f64,
5391        MarginRateByMoney: f64,
5392        MarginRateByVolume: f64,
5393        LegID: i32,
5394        LegMultiple: i32,
5395        TradeGroupID: i32,
5396        InvestUnitID: String,
5397        InstrumentID: String,
5398        CombInstrumentID: String,
5399    }
5400    #[derive(Debug, Clone, Default)]
5401    struct ParkedOrderField {
5402        is_null: bool,
5403        BrokerID: String,
5404        InvestorID: String,
5405        OrderRef: String,
5406        UserID: String,
5407        OrderPriceType: u8,
5408        Direction: u8,
5409        CombOffsetFlag: String,
5410        CombHedgeFlag: String,
5411        LimitPrice: f64,
5412        VolumeTotalOriginal: i32,
5413        TimeCondition: u8,
5414        GTDDate: String,
5415        VolumeCondition: u8,
5416        MinVolume: i32,
5417        ContingentCondition: u8,
5418        StopPrice: f64,
5419        ForceCloseReason: u8,
5420        IsAutoSuspend: i32,
5421        BusinessUnit: String,
5422        RequestID: i32,
5423        UserForceClose: i32,
5424        ExchangeID: String,
5425        ParkedOrderID: String,
5426        UserType: u8,
5427        Status: u8,
5428        ErrorID: i32,
5429        ErrorMsg: String,
5430        IsSwapOrder: i32,
5431        AccountID: String,
5432        CurrencyID: String,
5433        ClientID: String,
5434        InvestUnitID: String,
5435        MacAddress: String,
5436        InstrumentID: String,
5437        IPAddress: String,
5438    }
5439    #[derive(Debug, Clone, Default)]
5440    struct ParkedOrderActionField {
5441        is_null: bool,
5442        BrokerID: String,
5443        InvestorID: String,
5444        OrderActionRef: i32,
5445        OrderRef: String,
5446        RequestID: i32,
5447        FrontID: i32,
5448        SessionID: i32,
5449        ExchangeID: String,
5450        OrderSysID: String,
5451        ActionFlag: u8,
5452        LimitPrice: f64,
5453        VolumeChange: i32,
5454        UserID: String,
5455        ParkedOrderActionID: String,
5456        UserType: u8,
5457        Status: u8,
5458        ErrorID: i32,
5459        ErrorMsg: String,
5460        InvestUnitID: String,
5461        MacAddress: String,
5462        InstrumentID: String,
5463        IPAddress: String,
5464    }
5465    #[derive(Debug, Clone, Default)]
5466    struct QryParkedOrderField {
5467        is_null: bool,
5468        BrokerID: String,
5469        InvestorID: String,
5470        ExchangeID: String,
5471        InvestUnitID: String,
5472        InstrumentID: String,
5473    }
5474    #[derive(Debug, Clone, Default)]
5475    struct QryParkedOrderActionField {
5476        is_null: bool,
5477        BrokerID: String,
5478        InvestorID: String,
5479        ExchangeID: String,
5480        InvestUnitID: String,
5481        InstrumentID: String,
5482    }
5483    #[derive(Debug, Clone, Default)]
5484    struct RemoveParkedOrderField {
5485        is_null: bool,
5486        BrokerID: String,
5487        InvestorID: String,
5488        ParkedOrderID: String,
5489        InvestUnitID: String,
5490    }
5491    #[derive(Debug, Clone, Default)]
5492    struct RemoveParkedOrderActionField {
5493        is_null: bool,
5494        BrokerID: String,
5495        InvestorID: String,
5496        ParkedOrderActionID: String,
5497        InvestUnitID: String,
5498    }
5499    #[derive(Debug, Clone, Default)]
5500    struct InvestorWithdrawAlgorithmField {
5501        is_null: bool,
5502        BrokerID: String,
5503        InvestorRange: u8,
5504        InvestorID: String,
5505        UsingRatio: f64,
5506        CurrencyID: String,
5507        FundMortgageRatio: f64,
5508    }
5509    #[derive(Debug, Clone, Default)]
5510    struct QryInvestorPositionCombineDetailField {
5511        is_null: bool,
5512        BrokerID: String,
5513        InvestorID: String,
5514        ExchangeID: String,
5515        InvestUnitID: String,
5516        CombInstrumentID: String,
5517    }
5518    #[derive(Debug, Clone, Default)]
5519    struct MarketDataAveragePriceField {
5520        is_null: bool,
5521        AveragePrice: f64,
5522    }
5523    #[derive(Debug, Clone, Default)]
5524    struct VerifyInvestorPasswordField {
5525        is_null: bool,
5526        BrokerID: String,
5527        InvestorID: String,
5528        Password: String,
5529    }
5530    #[derive(Debug, Clone, Default)]
5531    struct UserIPField {
5532        is_null: bool,
5533        BrokerID: String,
5534        UserID: String,
5535        MacAddress: String,
5536        IPAddress: String,
5537        IPMask: Vec<u8>,
5538    }
5539    #[derive(Debug, Clone, Default)]
5540    struct TradingNoticeInfoField {
5541        is_null: bool,
5542        BrokerID: String,
5543        InvestorID: String,
5544        SendTime: String,
5545        FieldContent: Vec<u8>,
5546        SequenceSeries: u16,
5547        SequenceNo: i32,
5548        InvestUnitID: String,
5549    }
5550    #[derive(Debug, Clone, Default)]
5551    struct TradingNoticeField {
5552        is_null: bool,
5553        BrokerID: String,
5554        InvestorRange: u8,
5555        InvestorID: String,
5556        SequenceSeries: u16,
5557        UserID: String,
5558        SendTime: String,
5559        SequenceNo: i32,
5560        FieldContent: Vec<u8>,
5561        InvestUnitID: String,
5562    }
5563    #[derive(Debug, Clone, Default)]
5564    struct QryTradingNoticeField {
5565        is_null: bool,
5566        BrokerID: String,
5567        InvestorID: String,
5568        InvestUnitID: String,
5569    }
5570    #[derive(Debug, Clone, Default)]
5571    struct QryErrOrderField {
5572        is_null: bool,
5573        BrokerID: String,
5574        InvestorID: String,
5575    }
5576    #[derive(Debug, Clone, Default)]
5577    struct ErrOrderField {
5578        is_null: bool,
5579        BrokerID: String,
5580        InvestorID: String,
5581        OrderRef: String,
5582        UserID: String,
5583        OrderPriceType: u8,
5584        Direction: u8,
5585        CombOffsetFlag: String,
5586        CombHedgeFlag: String,
5587        LimitPrice: f64,
5588        VolumeTotalOriginal: i32,
5589        TimeCondition: u8,
5590        GTDDate: String,
5591        VolumeCondition: u8,
5592        MinVolume: i32,
5593        ContingentCondition: u8,
5594        StopPrice: f64,
5595        ForceCloseReason: u8,
5596        IsAutoSuspend: i32,
5597        BusinessUnit: String,
5598        RequestID: i32,
5599        UserForceClose: i32,
5600        ErrorID: i32,
5601        ErrorMsg: String,
5602        IsSwapOrder: i32,
5603        ExchangeID: String,
5604        InvestUnitID: String,
5605        AccountID: String,
5606        CurrencyID: String,
5607        ClientID: String,
5608        MacAddress: String,
5609        InstrumentID: String,
5610        IPAddress: String,
5611        OrderMemo: String,
5612        SessionReqSeq: i32,
5613    }
5614    #[derive(Debug, Clone, Default)]
5615    struct ErrorConditionalOrderField {
5616        is_null: bool,
5617        BrokerID: String,
5618        InvestorID: String,
5619        OrderRef: String,
5620        UserID: String,
5621        OrderPriceType: u8,
5622        Direction: u8,
5623        CombOffsetFlag: String,
5624        CombHedgeFlag: String,
5625        LimitPrice: f64,
5626        VolumeTotalOriginal: i32,
5627        TimeCondition: u8,
5628        GTDDate: String,
5629        VolumeCondition: u8,
5630        MinVolume: i32,
5631        ContingentCondition: u8,
5632        StopPrice: f64,
5633        ForceCloseReason: u8,
5634        IsAutoSuspend: i32,
5635        BusinessUnit: String,
5636        RequestID: i32,
5637        OrderLocalID: String,
5638        ExchangeID: String,
5639        ParticipantID: String,
5640        ClientID: String,
5641        TraderID: String,
5642        InstallID: i32,
5643        OrderSubmitStatus: u8,
5644        NotifySequence: i32,
5645        TradingDay: String,
5646        SettlementID: i32,
5647        OrderSysID: String,
5648        OrderSource: u8,
5649        OrderStatus: u8,
5650        OrderType: u8,
5651        VolumeTraded: i32,
5652        VolumeTotal: i32,
5653        InsertDate: String,
5654        InsertTime: String,
5655        ActiveTime: String,
5656        SuspendTime: String,
5657        UpdateTime: String,
5658        CancelTime: String,
5659        ActiveTraderID: String,
5660        ClearingPartID: String,
5661        SequenceNo: i32,
5662        FrontID: i32,
5663        SessionID: i32,
5664        UserProductInfo: String,
5665        StatusMsg: String,
5666        UserForceClose: i32,
5667        ActiveUserID: String,
5668        BrokerOrderSeq: i32,
5669        RelativeOrderSysID: String,
5670        ZCETotalTradedVolume: i32,
5671        ErrorID: i32,
5672        ErrorMsg: String,
5673        IsSwapOrder: i32,
5674        BranchID: String,
5675        InvestUnitID: String,
5676        AccountID: String,
5677        CurrencyID: String,
5678        MacAddress: String,
5679        InstrumentID: String,
5680        ExchangeInstID: String,
5681        IPAddress: String,
5682    }
5683    #[derive(Debug, Clone, Default)]
5684    struct QryErrOrderActionField {
5685        is_null: bool,
5686        BrokerID: String,
5687        InvestorID: String,
5688    }
5689    #[derive(Debug, Clone, Default)]
5690    struct ErrOrderActionField {
5691        is_null: bool,
5692        BrokerID: String,
5693        InvestorID: String,
5694        OrderActionRef: i32,
5695        OrderRef: String,
5696        RequestID: i32,
5697        FrontID: i32,
5698        SessionID: i32,
5699        ExchangeID: String,
5700        OrderSysID: String,
5701        ActionFlag: u8,
5702        LimitPrice: f64,
5703        VolumeChange: i32,
5704        ActionDate: String,
5705        ActionTime: String,
5706        TraderID: String,
5707        InstallID: i32,
5708        OrderLocalID: String,
5709        ActionLocalID: String,
5710        ParticipantID: String,
5711        ClientID: String,
5712        BusinessUnit: String,
5713        OrderActionStatus: u8,
5714        UserID: String,
5715        StatusMsg: String,
5716        BranchID: String,
5717        InvestUnitID: String,
5718        MacAddress: String,
5719        ErrorID: i32,
5720        ErrorMsg: String,
5721        InstrumentID: String,
5722        IPAddress: String,
5723        OrderMemo: String,
5724        SessionReqSeq: i32,
5725    }
5726    #[derive(Debug, Clone, Default)]
5727    struct QryExchangeSequenceField {
5728        is_null: bool,
5729        ExchangeID: String,
5730    }
5731    #[derive(Debug, Clone, Default)]
5732    struct ExchangeSequenceField {
5733        is_null: bool,
5734        ExchangeID: String,
5735        SequenceNo: i32,
5736        MarketStatus: u8,
5737    }
5738    #[derive(Debug, Clone, Default)]
5739    struct QryMaxOrderVolumeWithPriceField {
5740        is_null: bool,
5741        BrokerID: String,
5742        InvestorID: String,
5743        Direction: u8,
5744        OffsetFlag: u8,
5745        HedgeFlag: u8,
5746        MaxVolume: i32,
5747        Price: f64,
5748        ExchangeID: String,
5749        InvestUnitID: String,
5750        InstrumentID: String,
5751    }
5752    #[derive(Debug, Clone, Default)]
5753    struct QryBrokerTradingParamsField {
5754        is_null: bool,
5755        BrokerID: String,
5756        InvestorID: String,
5757        CurrencyID: String,
5758        AccountID: String,
5759    }
5760    #[derive(Debug, Clone, Default)]
5761    struct BrokerTradingParamsField {
5762        is_null: bool,
5763        BrokerID: String,
5764        InvestorID: String,
5765        MarginPriceType: u8,
5766        Algorithm: u8,
5767        AvailIncludeCloseProfit: u8,
5768        CurrencyID: String,
5769        OptionRoyaltyPriceType: u8,
5770        AccountID: String,
5771    }
5772    #[derive(Debug, Clone, Default)]
5773    struct QryBrokerTradingAlgosField {
5774        is_null: bool,
5775        BrokerID: String,
5776        ExchangeID: String,
5777        InstrumentID: String,
5778    }
5779    #[derive(Debug, Clone, Default)]
5780    struct BrokerTradingAlgosField {
5781        is_null: bool,
5782        BrokerID: String,
5783        ExchangeID: String,
5784        HandlePositionAlgoID: u8,
5785        FindMarginRateAlgoID: u8,
5786        HandleTradingAccountAlgoID: u8,
5787        InstrumentID: String,
5788    }
5789    #[derive(Debug, Clone, Default)]
5790    struct QueryBrokerDepositField {
5791        is_null: bool,
5792        BrokerID: String,
5793        ExchangeID: String,
5794    }
5795    #[derive(Debug, Clone, Default)]
5796    struct BrokerDepositField {
5797        is_null: bool,
5798        TradingDay: String,
5799        BrokerID: String,
5800        ParticipantID: String,
5801        ExchangeID: String,
5802        PreBalance: f64,
5803        CurrMargin: f64,
5804        CloseProfit: f64,
5805        Balance: f64,
5806        Deposit: f64,
5807        Withdraw: f64,
5808        Available: f64,
5809        Reserve: f64,
5810        FrozenMargin: f64,
5811    }
5812    #[derive(Debug, Clone, Default)]
5813    struct QryCFMMCBrokerKeyField {
5814        is_null: bool,
5815        BrokerID: String,
5816    }
5817    #[derive(Debug, Clone, Default)]
5818    struct CFMMCBrokerKeyField {
5819        is_null: bool,
5820        BrokerID: String,
5821        ParticipantID: String,
5822        CreateDate: String,
5823        CreateTime: String,
5824        KeyID: i32,
5825        CurrentKey: Vec<u8>,
5826        KeyKind: u8,
5827    }
5828    #[derive(Debug, Clone, Default)]
5829    struct CFMMCTradingAccountKeyField {
5830        is_null: bool,
5831        BrokerID: String,
5832        ParticipantID: String,
5833        AccountID: String,
5834        KeyID: i32,
5835        CurrentKey: Vec<u8>,
5836    }
5837    #[derive(Debug, Clone, Default)]
5838    struct QryCFMMCTradingAccountKeyField {
5839        is_null: bool,
5840        BrokerID: String,
5841        InvestorID: String,
5842    }
5843    #[derive(Debug, Clone, Default)]
5844    struct BrokerUserOTPParamField {
5845        is_null: bool,
5846        BrokerID: String,
5847        UserID: String,
5848        OTPVendorsID: String,
5849        SerialNumber: Vec<u8>,
5850        AuthKey: Vec<u8>,
5851        LastDrift: i32,
5852        LastSuccess: i32,
5853        OTPType: u8,
5854    }
5855    #[derive(Debug, Clone, Default)]
5856    struct ManualSyncBrokerUserOTPField {
5857        is_null: bool,
5858        BrokerID: String,
5859        UserID: String,
5860        OTPType: u8,
5861        FirstOTP: Vec<u8>,
5862        SecondOTP: Vec<u8>,
5863    }
5864    #[derive(Debug, Clone, Default)]
5865    struct CommRateModelField {
5866        is_null: bool,
5867        BrokerID: String,
5868        CommModelID: String,
5869        CommModelName: String,
5870    }
5871    #[derive(Debug, Clone, Default)]
5872    struct QryCommRateModelField {
5873        is_null: bool,
5874        BrokerID: String,
5875        CommModelID: String,
5876    }
5877    #[derive(Debug, Clone, Default)]
5878    struct MarginModelField {
5879        is_null: bool,
5880        BrokerID: String,
5881        MarginModelID: String,
5882        MarginModelName: String,
5883    }
5884    #[derive(Debug, Clone, Default)]
5885    struct QryMarginModelField {
5886        is_null: bool,
5887        BrokerID: String,
5888        MarginModelID: String,
5889    }
5890    #[derive(Debug, Clone, Default)]
5891    struct EWarrantOffsetField {
5892        is_null: bool,
5893        TradingDay: String,
5894        BrokerID: String,
5895        InvestorID: String,
5896        ExchangeID: String,
5897        Direction: u8,
5898        HedgeFlag: u8,
5899        Volume: i32,
5900        InvestUnitID: String,
5901        InstrumentID: String,
5902    }
5903    #[derive(Debug, Clone, Default)]
5904    struct QryEWarrantOffsetField {
5905        is_null: bool,
5906        BrokerID: String,
5907        InvestorID: String,
5908        ExchangeID: String,
5909        InvestUnitID: String,
5910        InstrumentID: String,
5911    }
5912    #[derive(Debug, Clone, Default)]
5913    struct QryInvestorProductGroupMarginField {
5914        is_null: bool,
5915        BrokerID: String,
5916        InvestorID: String,
5917        HedgeFlag: u8,
5918        ExchangeID: String,
5919        InvestUnitID: String,
5920        ProductGroupID: String,
5921    }
5922    #[derive(Debug, Clone, Default)]
5923    struct InvestorProductGroupMarginField {
5924        is_null: bool,
5925        BrokerID: String,
5926        InvestorID: String,
5927        TradingDay: String,
5928        SettlementID: i32,
5929        FrozenMargin: f64,
5930        LongFrozenMargin: f64,
5931        ShortFrozenMargin: f64,
5932        UseMargin: f64,
5933        LongUseMargin: f64,
5934        ShortUseMargin: f64,
5935        ExchMargin: f64,
5936        LongExchMargin: f64,
5937        ShortExchMargin: f64,
5938        CloseProfit: f64,
5939        FrozenCommission: f64,
5940        Commission: f64,
5941        FrozenCash: f64,
5942        CashIn: f64,
5943        PositionProfit: f64,
5944        OffsetAmount: f64,
5945        LongOffsetAmount: f64,
5946        ShortOffsetAmount: f64,
5947        ExchOffsetAmount: f64,
5948        LongExchOffsetAmount: f64,
5949        ShortExchOffsetAmount: f64,
5950        HedgeFlag: u8,
5951        ExchangeID: String,
5952        InvestUnitID: String,
5953        ProductGroupID: String,
5954    }
5955    #[derive(Debug, Clone, Default)]
5956    struct QueryCFMMCTradingAccountTokenField {
5957        is_null: bool,
5958        BrokerID: String,
5959        InvestorID: String,
5960        InvestUnitID: String,
5961    }
5962    #[derive(Debug, Clone, Default)]
5963    struct CFMMCTradingAccountTokenField {
5964        is_null: bool,
5965        BrokerID: String,
5966        ParticipantID: String,
5967        AccountID: String,
5968        KeyID: i32,
5969        Token: Vec<u8>,
5970    }
5971    #[derive(Debug, Clone, Default)]
5972    struct QryProductGroupField {
5973        is_null: bool,
5974        ExchangeID: String,
5975        ProductID: String,
5976    }
5977    #[derive(Debug, Clone, Default)]
5978    struct ProductGroupField {
5979        is_null: bool,
5980        ExchangeID: String,
5981        ProductID: String,
5982        ProductGroupID: String,
5983    }
5984    #[derive(Debug, Clone, Default)]
5985    struct BulletinField {
5986        is_null: bool,
5987        ExchangeID: String,
5988        TradingDay: String,
5989        BulletinID: i32,
5990        SequenceNo: i32,
5991        NewsType: Vec<u8>,
5992        NewsUrgency: u8,
5993        SendTime: String,
5994        Abstract: Vec<u8>,
5995        ComeFrom: Vec<u8>,
5996        Content: Vec<u8>,
5997        URLLink: Vec<u8>,
5998        MarketID: String,
5999    }
6000    #[derive(Debug, Clone, Default)]
6001    struct QryBulletinField {
6002        is_null: bool,
6003        ExchangeID: String,
6004        BulletinID: i32,
6005        SequenceNo: i32,
6006        NewsType: Vec<u8>,
6007        NewsUrgency: u8,
6008    }
6009    #[derive(Debug, Clone, Default)]
6010    struct MulticastInstrumentField {
6011        is_null: bool,
6012        TopicID: i32,
6013        InstrumentNo: i32,
6014        CodePrice: f64,
6015        VolumeMultiple: i32,
6016        PriceTick: f64,
6017        InstrumentID: String,
6018    }
6019    #[derive(Debug, Clone, Default)]
6020    struct QryMulticastInstrumentField {
6021        is_null: bool,
6022        TopicID: i32,
6023        InstrumentID: String,
6024    }
6025    #[derive(Debug, Clone, Default)]
6026    struct AppIDAuthAssignField {
6027        is_null: bool,
6028        BrokerID: String,
6029        AppID: String,
6030        DRIdentityID: i32,
6031    }
6032    #[derive(Debug, Clone, Default)]
6033    struct ReqOpenAccountField {
6034        is_null: bool,
6035        TradeCode: String,
6036        BankID: String,
6037        BankBranchID: String,
6038        BrokerID: String,
6039        BrokerBranchID: String,
6040        TradeDate: String,
6041        TradeTime: String,
6042        BankSerial: String,
6043        TradingDay: String,
6044        PlateSerial: i32,
6045        LastFragment: u8,
6046        SessionID: i32,
6047        CustomerName: String,
6048        IdCardType: u8,
6049        IdentifiedCardNo: String,
6050        Gender: u8,
6051        CountryCode: String,
6052        CustType: u8,
6053        Address: String,
6054        ZipCode: String,
6055        Telephone: String,
6056        MobilePhone: String,
6057        Fax: String,
6058        EMail: String,
6059        MoneyAccountStatus: u8,
6060        BankAccount: String,
6061        BankPassWord: String,
6062        AccountID: String,
6063        Password: String,
6064        InstallID: i32,
6065        VerifyCertNoFlag: u8,
6066        CurrencyID: String,
6067        CashExchangeCode: u8,
6068        Digest: Vec<u8>,
6069        BankAccType: u8,
6070        DeviceID: String,
6071        BankSecuAccType: u8,
6072        BrokerIDByBank: Vec<u8>,
6073        BankSecuAcc: Vec<u8>,
6074        BankPwdFlag: u8,
6075        SecuPwdFlag: u8,
6076        OperNo: String,
6077        TID: i32,
6078        UserID: String,
6079        LongCustomerName: String,
6080    }
6081    #[derive(Debug, Clone, Default)]
6082    struct ReqCancelAccountField {
6083        is_null: bool,
6084        TradeCode: String,
6085        BankID: String,
6086        BankBranchID: String,
6087        BrokerID: String,
6088        BrokerBranchID: String,
6089        TradeDate: String,
6090        TradeTime: String,
6091        BankSerial: String,
6092        TradingDay: String,
6093        PlateSerial: i32,
6094        LastFragment: u8,
6095        SessionID: i32,
6096        CustomerName: String,
6097        IdCardType: u8,
6098        IdentifiedCardNo: String,
6099        Gender: u8,
6100        CountryCode: String,
6101        CustType: u8,
6102        Address: String,
6103        ZipCode: String,
6104        Telephone: String,
6105        MobilePhone: String,
6106        Fax: String,
6107        EMail: String,
6108        MoneyAccountStatus: u8,
6109        BankAccount: String,
6110        BankPassWord: String,
6111        AccountID: String,
6112        Password: String,
6113        InstallID: i32,
6114        VerifyCertNoFlag: u8,
6115        CurrencyID: String,
6116        CashExchangeCode: u8,
6117        Digest: Vec<u8>,
6118        BankAccType: u8,
6119        DeviceID: String,
6120        BankSecuAccType: u8,
6121        BrokerIDByBank: Vec<u8>,
6122        BankSecuAcc: Vec<u8>,
6123        BankPwdFlag: u8,
6124        SecuPwdFlag: u8,
6125        OperNo: String,
6126        TID: i32,
6127        UserID: String,
6128        LongCustomerName: String,
6129    }
6130    #[derive(Debug, Clone, Default)]
6131    struct ReqChangeAccountField {
6132        is_null: bool,
6133        TradeCode: String,
6134        BankID: String,
6135        BankBranchID: String,
6136        BrokerID: String,
6137        BrokerBranchID: String,
6138        TradeDate: String,
6139        TradeTime: String,
6140        BankSerial: String,
6141        TradingDay: String,
6142        PlateSerial: i32,
6143        LastFragment: u8,
6144        SessionID: i32,
6145        CustomerName: String,
6146        IdCardType: u8,
6147        IdentifiedCardNo: String,
6148        Gender: u8,
6149        CountryCode: String,
6150        CustType: u8,
6151        Address: String,
6152        ZipCode: String,
6153        Telephone: String,
6154        MobilePhone: String,
6155        Fax: String,
6156        EMail: String,
6157        MoneyAccountStatus: u8,
6158        BankAccount: String,
6159        BankPassWord: String,
6160        NewBankAccount: String,
6161        NewBankPassWord: String,
6162        AccountID: String,
6163        Password: String,
6164        BankAccType: u8,
6165        InstallID: i32,
6166        VerifyCertNoFlag: u8,
6167        CurrencyID: String,
6168        BrokerIDByBank: Vec<u8>,
6169        BankPwdFlag: u8,
6170        SecuPwdFlag: u8,
6171        TID: i32,
6172        Digest: Vec<u8>,
6173        LongCustomerName: String,
6174    }
6175    #[derive(Debug, Clone, Default)]
6176    struct ReqTransferField {
6177        is_null: bool,
6178        TradeCode: String,
6179        BankID: String,
6180        BankBranchID: String,
6181        BrokerID: String,
6182        BrokerBranchID: String,
6183        TradeDate: String,
6184        TradeTime: String,
6185        BankSerial: String,
6186        TradingDay: String,
6187        PlateSerial: i32,
6188        LastFragment: u8,
6189        SessionID: i32,
6190        CustomerName: String,
6191        IdCardType: u8,
6192        IdentifiedCardNo: String,
6193        CustType: u8,
6194        BankAccount: String,
6195        BankPassWord: String,
6196        AccountID: String,
6197        Password: String,
6198        InstallID: i32,
6199        FutureSerial: i32,
6200        UserID: String,
6201        VerifyCertNoFlag: u8,
6202        CurrencyID: String,
6203        TradeAmount: f64,
6204        FutureFetchAmount: f64,
6205        FeePayFlag: u8,
6206        CustFee: f64,
6207        BrokerFee: f64,
6208        Message: Vec<u8>,
6209        Digest: Vec<u8>,
6210        BankAccType: u8,
6211        DeviceID: String,
6212        BankSecuAccType: u8,
6213        BrokerIDByBank: Vec<u8>,
6214        BankSecuAcc: Vec<u8>,
6215        BankPwdFlag: u8,
6216        SecuPwdFlag: u8,
6217        OperNo: String,
6218        RequestID: i32,
6219        TID: i32,
6220        TransferStatus: u8,
6221        LongCustomerName: String,
6222    }
6223    #[derive(Debug, Clone, Default)]
6224    struct RspTransferField {
6225        is_null: bool,
6226        TradeCode: String,
6227        BankID: String,
6228        BankBranchID: String,
6229        BrokerID: String,
6230        BrokerBranchID: String,
6231        TradeDate: String,
6232        TradeTime: String,
6233        BankSerial: String,
6234        TradingDay: String,
6235        PlateSerial: i32,
6236        LastFragment: u8,
6237        SessionID: i32,
6238        CustomerName: String,
6239        IdCardType: u8,
6240        IdentifiedCardNo: String,
6241        CustType: u8,
6242        BankAccount: String,
6243        BankPassWord: String,
6244        AccountID: String,
6245        Password: String,
6246        InstallID: i32,
6247        FutureSerial: i32,
6248        UserID: String,
6249        VerifyCertNoFlag: u8,
6250        CurrencyID: String,
6251        TradeAmount: f64,
6252        FutureFetchAmount: f64,
6253        FeePayFlag: u8,
6254        CustFee: f64,
6255        BrokerFee: f64,
6256        Message: Vec<u8>,
6257        Digest: Vec<u8>,
6258        BankAccType: u8,
6259        DeviceID: String,
6260        BankSecuAccType: u8,
6261        BrokerIDByBank: Vec<u8>,
6262        BankSecuAcc: Vec<u8>,
6263        BankPwdFlag: u8,
6264        SecuPwdFlag: u8,
6265        OperNo: String,
6266        RequestID: i32,
6267        TID: i32,
6268        TransferStatus: u8,
6269        ErrorID: i32,
6270        ErrorMsg: String,
6271        LongCustomerName: String,
6272    }
6273    #[derive(Debug, Clone, Default)]
6274    struct ReqRepealField {
6275        is_null: bool,
6276        RepealTimeInterval: i32,
6277        RepealedTimes: i32,
6278        BankRepealFlag: u8,
6279        BrokerRepealFlag: u8,
6280        PlateRepealSerial: i32,
6281        BankRepealSerial: String,
6282        FutureRepealSerial: i32,
6283        TradeCode: String,
6284        BankID: String,
6285        BankBranchID: String,
6286        BrokerID: String,
6287        BrokerBranchID: String,
6288        TradeDate: String,
6289        TradeTime: String,
6290        BankSerial: String,
6291        TradingDay: String,
6292        PlateSerial: i32,
6293        LastFragment: u8,
6294        SessionID: i32,
6295        CustomerName: String,
6296        IdCardType: u8,
6297        IdentifiedCardNo: String,
6298        CustType: u8,
6299        BankAccount: String,
6300        BankPassWord: String,
6301        AccountID: String,
6302        Password: String,
6303        InstallID: i32,
6304        FutureSerial: i32,
6305        UserID: String,
6306        VerifyCertNoFlag: u8,
6307        CurrencyID: String,
6308        TradeAmount: f64,
6309        FutureFetchAmount: f64,
6310        FeePayFlag: u8,
6311        CustFee: f64,
6312        BrokerFee: f64,
6313        Message: Vec<u8>,
6314        Digest: Vec<u8>,
6315        BankAccType: u8,
6316        DeviceID: String,
6317        BankSecuAccType: u8,
6318        BrokerIDByBank: Vec<u8>,
6319        BankSecuAcc: Vec<u8>,
6320        BankPwdFlag: u8,
6321        SecuPwdFlag: u8,
6322        OperNo: String,
6323        RequestID: i32,
6324        TID: i32,
6325        TransferStatus: u8,
6326        LongCustomerName: String,
6327    }
6328    #[derive(Debug, Clone, Default)]
6329    struct RspRepealField {
6330        is_null: bool,
6331        RepealTimeInterval: i32,
6332        RepealedTimes: i32,
6333        BankRepealFlag: u8,
6334        BrokerRepealFlag: u8,
6335        PlateRepealSerial: i32,
6336        BankRepealSerial: String,
6337        FutureRepealSerial: i32,
6338        TradeCode: String,
6339        BankID: String,
6340        BankBranchID: String,
6341        BrokerID: String,
6342        BrokerBranchID: String,
6343        TradeDate: String,
6344        TradeTime: String,
6345        BankSerial: String,
6346        TradingDay: String,
6347        PlateSerial: i32,
6348        LastFragment: u8,
6349        SessionID: i32,
6350        CustomerName: String,
6351        IdCardType: u8,
6352        IdentifiedCardNo: String,
6353        CustType: u8,
6354        BankAccount: String,
6355        BankPassWord: String,
6356        AccountID: String,
6357        Password: String,
6358        InstallID: i32,
6359        FutureSerial: i32,
6360        UserID: String,
6361        VerifyCertNoFlag: u8,
6362        CurrencyID: String,
6363        TradeAmount: f64,
6364        FutureFetchAmount: f64,
6365        FeePayFlag: u8,
6366        CustFee: f64,
6367        BrokerFee: f64,
6368        Message: Vec<u8>,
6369        Digest: Vec<u8>,
6370        BankAccType: u8,
6371        DeviceID: String,
6372        BankSecuAccType: u8,
6373        BrokerIDByBank: Vec<u8>,
6374        BankSecuAcc: Vec<u8>,
6375        BankPwdFlag: u8,
6376        SecuPwdFlag: u8,
6377        OperNo: String,
6378        RequestID: i32,
6379        TID: i32,
6380        TransferStatus: u8,
6381        ErrorID: i32,
6382        ErrorMsg: String,
6383        LongCustomerName: String,
6384    }
6385    #[derive(Debug, Clone, Default)]
6386    struct ReqQueryAccountField {
6387        is_null: bool,
6388        TradeCode: String,
6389        BankID: String,
6390        BankBranchID: String,
6391        BrokerID: String,
6392        BrokerBranchID: String,
6393        TradeDate: String,
6394        TradeTime: String,
6395        BankSerial: String,
6396        TradingDay: String,
6397        PlateSerial: i32,
6398        LastFragment: u8,
6399        SessionID: i32,
6400        CustomerName: String,
6401        IdCardType: u8,
6402        IdentifiedCardNo: String,
6403        CustType: u8,
6404        BankAccount: String,
6405        BankPassWord: String,
6406        AccountID: String,
6407        Password: String,
6408        FutureSerial: i32,
6409        InstallID: i32,
6410        UserID: String,
6411        VerifyCertNoFlag: u8,
6412        CurrencyID: String,
6413        Digest: Vec<u8>,
6414        BankAccType: u8,
6415        DeviceID: String,
6416        BankSecuAccType: u8,
6417        BrokerIDByBank: Vec<u8>,
6418        BankSecuAcc: Vec<u8>,
6419        BankPwdFlag: u8,
6420        SecuPwdFlag: u8,
6421        OperNo: String,
6422        RequestID: i32,
6423        TID: i32,
6424        LongCustomerName: String,
6425    }
6426    #[derive(Debug, Clone, Default)]
6427    struct RspQueryAccountField {
6428        is_null: bool,
6429        TradeCode: String,
6430        BankID: String,
6431        BankBranchID: String,
6432        BrokerID: String,
6433        BrokerBranchID: String,
6434        TradeDate: String,
6435        TradeTime: String,
6436        BankSerial: String,
6437        TradingDay: String,
6438        PlateSerial: i32,
6439        LastFragment: u8,
6440        SessionID: i32,
6441        CustomerName: String,
6442        IdCardType: u8,
6443        IdentifiedCardNo: String,
6444        CustType: u8,
6445        BankAccount: String,
6446        BankPassWord: String,
6447        AccountID: String,
6448        Password: String,
6449        FutureSerial: i32,
6450        InstallID: i32,
6451        UserID: String,
6452        VerifyCertNoFlag: u8,
6453        CurrencyID: String,
6454        Digest: Vec<u8>,
6455        BankAccType: u8,
6456        DeviceID: String,
6457        BankSecuAccType: u8,
6458        BrokerIDByBank: Vec<u8>,
6459        BankSecuAcc: Vec<u8>,
6460        BankPwdFlag: u8,
6461        SecuPwdFlag: u8,
6462        OperNo: String,
6463        RequestID: i32,
6464        TID: i32,
6465        BankUseAmount: f64,
6466        BankFetchAmount: f64,
6467        LongCustomerName: String,
6468    }
6469    #[derive(Debug, Clone, Default)]
6470    struct FutureSignIOField {
6471        is_null: bool,
6472        TradeCode: String,
6473        BankID: String,
6474        BankBranchID: String,
6475        BrokerID: String,
6476        BrokerBranchID: String,
6477        TradeDate: String,
6478        TradeTime: String,
6479        BankSerial: String,
6480        TradingDay: String,
6481        PlateSerial: i32,
6482        LastFragment: u8,
6483        SessionID: i32,
6484        InstallID: i32,
6485        UserID: String,
6486        Digest: Vec<u8>,
6487        CurrencyID: String,
6488        DeviceID: String,
6489        BrokerIDByBank: Vec<u8>,
6490        OperNo: String,
6491        RequestID: i32,
6492        TID: i32,
6493    }
6494    #[derive(Debug, Clone, Default)]
6495    struct RspFutureSignInField {
6496        is_null: bool,
6497        TradeCode: String,
6498        BankID: String,
6499        BankBranchID: String,
6500        BrokerID: String,
6501        BrokerBranchID: String,
6502        TradeDate: String,
6503        TradeTime: String,
6504        BankSerial: String,
6505        TradingDay: String,
6506        PlateSerial: i32,
6507        LastFragment: u8,
6508        SessionID: i32,
6509        InstallID: i32,
6510        UserID: String,
6511        Digest: Vec<u8>,
6512        CurrencyID: String,
6513        DeviceID: String,
6514        BrokerIDByBank: Vec<u8>,
6515        OperNo: String,
6516        RequestID: i32,
6517        TID: i32,
6518        ErrorID: i32,
6519        ErrorMsg: String,
6520        PinKey: Vec<u8>,
6521        MacKey: Vec<u8>,
6522    }
6523    #[derive(Debug, Clone, Default)]
6524    struct ReqFutureSignOutField {
6525        is_null: bool,
6526        TradeCode: String,
6527        BankID: String,
6528        BankBranchID: String,
6529        BrokerID: String,
6530        BrokerBranchID: String,
6531        TradeDate: String,
6532        TradeTime: String,
6533        BankSerial: String,
6534        TradingDay: String,
6535        PlateSerial: i32,
6536        LastFragment: u8,
6537        SessionID: i32,
6538        InstallID: i32,
6539        UserID: String,
6540        Digest: Vec<u8>,
6541        CurrencyID: String,
6542        DeviceID: String,
6543        BrokerIDByBank: Vec<u8>,
6544        OperNo: String,
6545        RequestID: i32,
6546        TID: i32,
6547    }
6548    #[derive(Debug, Clone, Default)]
6549    struct RspFutureSignOutField {
6550        is_null: bool,
6551        TradeCode: String,
6552        BankID: String,
6553        BankBranchID: String,
6554        BrokerID: String,
6555        BrokerBranchID: String,
6556        TradeDate: String,
6557        TradeTime: String,
6558        BankSerial: String,
6559        TradingDay: String,
6560        PlateSerial: i32,
6561        LastFragment: u8,
6562        SessionID: i32,
6563        InstallID: i32,
6564        UserID: String,
6565        Digest: Vec<u8>,
6566        CurrencyID: String,
6567        DeviceID: String,
6568        BrokerIDByBank: Vec<u8>,
6569        OperNo: String,
6570        RequestID: i32,
6571        TID: i32,
6572        ErrorID: i32,
6573        ErrorMsg: String,
6574    }
6575    #[derive(Debug, Clone, Default)]
6576    struct ReqQueryTradeResultBySerialField {
6577        is_null: bool,
6578        TradeCode: String,
6579        BankID: String,
6580        BankBranchID: String,
6581        BrokerID: String,
6582        BrokerBranchID: String,
6583        TradeDate: String,
6584        TradeTime: String,
6585        BankSerial: String,
6586        TradingDay: String,
6587        PlateSerial: i32,
6588        LastFragment: u8,
6589        SessionID: i32,
6590        Reference: i32,
6591        RefrenceIssureType: u8,
6592        RefrenceIssure: Vec<u8>,
6593        CustomerName: String,
6594        IdCardType: u8,
6595        IdentifiedCardNo: String,
6596        CustType: u8,
6597        BankAccount: String,
6598        BankPassWord: String,
6599        AccountID: String,
6600        Password: String,
6601        CurrencyID: String,
6602        TradeAmount: f64,
6603        Digest: Vec<u8>,
6604        LongCustomerName: String,
6605    }
6606    #[derive(Debug, Clone, Default)]
6607    struct RspQueryTradeResultBySerialField {
6608        is_null: bool,
6609        TradeCode: String,
6610        BankID: String,
6611        BankBranchID: String,
6612        BrokerID: String,
6613        BrokerBranchID: String,
6614        TradeDate: String,
6615        TradeTime: String,
6616        BankSerial: String,
6617        TradingDay: String,
6618        PlateSerial: i32,
6619        LastFragment: u8,
6620        SessionID: i32,
6621        ErrorID: i32,
6622        ErrorMsg: String,
6623        Reference: i32,
6624        RefrenceIssureType: u8,
6625        RefrenceIssure: Vec<u8>,
6626        OriginReturnCode: String,
6627        OriginDescrInfoForReturnCode: String,
6628        BankAccount: String,
6629        BankPassWord: String,
6630        AccountID: String,
6631        Password: String,
6632        CurrencyID: String,
6633        TradeAmount: f64,
6634        Digest: Vec<u8>,
6635    }
6636    #[derive(Debug, Clone, Default)]
6637    struct ReqDayEndFileReadyField {
6638        is_null: bool,
6639        TradeCode: String,
6640        BankID: String,
6641        BankBranchID: String,
6642        BrokerID: String,
6643        BrokerBranchID: String,
6644        TradeDate: String,
6645        TradeTime: String,
6646        BankSerial: String,
6647        TradingDay: String,
6648        PlateSerial: i32,
6649        LastFragment: u8,
6650        SessionID: i32,
6651        FileBusinessCode: u8,
6652        Digest: Vec<u8>,
6653    }
6654    #[derive(Debug, Clone, Default)]
6655    struct ReturnResultField {
6656        is_null: bool,
6657        ReturnCode: String,
6658        DescrInfoForReturnCode: String,
6659    }
6660    #[derive(Debug, Clone, Default)]
6661    struct VerifyFuturePasswordField {
6662        is_null: bool,
6663        TradeCode: String,
6664        BankID: String,
6665        BankBranchID: String,
6666        BrokerID: String,
6667        BrokerBranchID: String,
6668        TradeDate: String,
6669        TradeTime: String,
6670        BankSerial: String,
6671        TradingDay: String,
6672        PlateSerial: i32,
6673        LastFragment: u8,
6674        SessionID: i32,
6675        AccountID: String,
6676        Password: String,
6677        BankAccount: String,
6678        BankPassWord: String,
6679        InstallID: i32,
6680        TID: i32,
6681        CurrencyID: String,
6682    }
6683    #[derive(Debug, Clone, Default)]
6684    struct VerifyCustInfoField {
6685        is_null: bool,
6686        CustomerName: String,
6687        IdCardType: u8,
6688        IdentifiedCardNo: String,
6689        CustType: u8,
6690        LongCustomerName: String,
6691    }
6692    #[derive(Debug, Clone, Default)]
6693    struct VerifyFuturePasswordAndCustInfoField {
6694        is_null: bool,
6695        CustomerName: String,
6696        IdCardType: u8,
6697        IdentifiedCardNo: String,
6698        CustType: u8,
6699        AccountID: String,
6700        Password: String,
6701        CurrencyID: String,
6702        LongCustomerName: String,
6703    }
6704    #[derive(Debug, Clone, Default)]
6705    struct DepositResultInformField {
6706        is_null: bool,
6707        DepositSeqNo: Vec<u8>,
6708        BrokerID: String,
6709        InvestorID: String,
6710        Deposit: f64,
6711        RequestID: i32,
6712        ReturnCode: String,
6713        DescrInfoForReturnCode: String,
6714    }
6715    #[derive(Debug, Clone, Default)]
6716    struct ReqSyncKeyField {
6717        is_null: bool,
6718        TradeCode: String,
6719        BankID: String,
6720        BankBranchID: String,
6721        BrokerID: String,
6722        BrokerBranchID: String,
6723        TradeDate: String,
6724        TradeTime: String,
6725        BankSerial: String,
6726        TradingDay: String,
6727        PlateSerial: i32,
6728        LastFragment: u8,
6729        SessionID: i32,
6730        InstallID: i32,
6731        UserID: String,
6732        Message: Vec<u8>,
6733        DeviceID: String,
6734        BrokerIDByBank: Vec<u8>,
6735        OperNo: String,
6736        RequestID: i32,
6737        TID: i32,
6738    }
6739    #[derive(Debug, Clone, Default)]
6740    struct RspSyncKeyField {
6741        is_null: bool,
6742        TradeCode: String,
6743        BankID: String,
6744        BankBranchID: String,
6745        BrokerID: String,
6746        BrokerBranchID: String,
6747        TradeDate: String,
6748        TradeTime: String,
6749        BankSerial: String,
6750        TradingDay: String,
6751        PlateSerial: i32,
6752        LastFragment: u8,
6753        SessionID: i32,
6754        InstallID: i32,
6755        UserID: String,
6756        Message: Vec<u8>,
6757        DeviceID: String,
6758        BrokerIDByBank: Vec<u8>,
6759        OperNo: String,
6760        RequestID: i32,
6761        TID: i32,
6762        ErrorID: i32,
6763        ErrorMsg: String,
6764    }
6765    #[derive(Debug, Clone, Default)]
6766    struct NotifyQueryAccountField {
6767        is_null: bool,
6768        TradeCode: String,
6769        BankID: String,
6770        BankBranchID: String,
6771        BrokerID: String,
6772        BrokerBranchID: String,
6773        TradeDate: String,
6774        TradeTime: String,
6775        BankSerial: String,
6776        TradingDay: String,
6777        PlateSerial: i32,
6778        LastFragment: u8,
6779        SessionID: i32,
6780        CustomerName: String,
6781        IdCardType: u8,
6782        IdentifiedCardNo: String,
6783        CustType: u8,
6784        BankAccount: String,
6785        BankPassWord: String,
6786        AccountID: String,
6787        Password: String,
6788        FutureSerial: i32,
6789        InstallID: i32,
6790        UserID: String,
6791        VerifyCertNoFlag: u8,
6792        CurrencyID: String,
6793        Digest: Vec<u8>,
6794        BankAccType: u8,
6795        DeviceID: String,
6796        BankSecuAccType: u8,
6797        BrokerIDByBank: Vec<u8>,
6798        BankSecuAcc: Vec<u8>,
6799        BankPwdFlag: u8,
6800        SecuPwdFlag: u8,
6801        OperNo: String,
6802        RequestID: i32,
6803        TID: i32,
6804        BankUseAmount: f64,
6805        BankFetchAmount: f64,
6806        ErrorID: i32,
6807        ErrorMsg: String,
6808        LongCustomerName: String,
6809    }
6810    #[derive(Debug, Clone, Default)]
6811    struct TransferSerialField {
6812        is_null: bool,
6813        PlateSerial: i32,
6814        TradeDate: String,
6815        TradingDay: String,
6816        TradeTime: String,
6817        TradeCode: String,
6818        SessionID: i32,
6819        BankID: String,
6820        BankBranchID: String,
6821        BankAccType: u8,
6822        BankAccount: String,
6823        BankSerial: String,
6824        BrokerID: String,
6825        BrokerBranchID: String,
6826        FutureAccType: u8,
6827        AccountID: String,
6828        InvestorID: String,
6829        FutureSerial: i32,
6830        IdCardType: u8,
6831        IdentifiedCardNo: String,
6832        CurrencyID: String,
6833        TradeAmount: f64,
6834        CustFee: f64,
6835        BrokerFee: f64,
6836        AvailabilityFlag: u8,
6837        OperatorCode: String,
6838        BankNewAccount: String,
6839        ErrorID: i32,
6840        ErrorMsg: String,
6841    }
6842    #[derive(Debug, Clone, Default)]
6843    struct QryTransferSerialField {
6844        is_null: bool,
6845        BrokerID: String,
6846        AccountID: String,
6847        BankID: String,
6848        CurrencyID: String,
6849    }
6850    #[derive(Debug, Clone, Default)]
6851    struct NotifyFutureSignInField {
6852        is_null: bool,
6853        TradeCode: String,
6854        BankID: String,
6855        BankBranchID: String,
6856        BrokerID: String,
6857        BrokerBranchID: String,
6858        TradeDate: String,
6859        TradeTime: String,
6860        BankSerial: String,
6861        TradingDay: String,
6862        PlateSerial: i32,
6863        LastFragment: u8,
6864        SessionID: i32,
6865        InstallID: i32,
6866        UserID: String,
6867        Digest: Vec<u8>,
6868        CurrencyID: String,
6869        DeviceID: String,
6870        BrokerIDByBank: Vec<u8>,
6871        OperNo: String,
6872        RequestID: i32,
6873        TID: i32,
6874        ErrorID: i32,
6875        ErrorMsg: String,
6876        PinKey: Vec<u8>,
6877        MacKey: Vec<u8>,
6878    }
6879    #[derive(Debug, Clone, Default)]
6880    struct NotifyFutureSignOutField {
6881        is_null: bool,
6882        TradeCode: String,
6883        BankID: String,
6884        BankBranchID: String,
6885        BrokerID: String,
6886        BrokerBranchID: String,
6887        TradeDate: String,
6888        TradeTime: String,
6889        BankSerial: String,
6890        TradingDay: String,
6891        PlateSerial: i32,
6892        LastFragment: u8,
6893        SessionID: i32,
6894        InstallID: i32,
6895        UserID: String,
6896        Digest: Vec<u8>,
6897        CurrencyID: String,
6898        DeviceID: String,
6899        BrokerIDByBank: Vec<u8>,
6900        OperNo: String,
6901        RequestID: i32,
6902        TID: i32,
6903        ErrorID: i32,
6904        ErrorMsg: String,
6905    }
6906    #[derive(Debug, Clone, Default)]
6907    struct NotifySyncKeyField {
6908        is_null: bool,
6909        TradeCode: String,
6910        BankID: String,
6911        BankBranchID: String,
6912        BrokerID: String,
6913        BrokerBranchID: String,
6914        TradeDate: String,
6915        TradeTime: String,
6916        BankSerial: String,
6917        TradingDay: String,
6918        PlateSerial: i32,
6919        LastFragment: u8,
6920        SessionID: i32,
6921        InstallID: i32,
6922        UserID: String,
6923        Message: Vec<u8>,
6924        DeviceID: String,
6925        BrokerIDByBank: Vec<u8>,
6926        OperNo: String,
6927        RequestID: i32,
6928        TID: i32,
6929        ErrorID: i32,
6930        ErrorMsg: String,
6931    }
6932    #[derive(Debug, Clone, Default)]
6933    struct QryAccountregisterField {
6934        is_null: bool,
6935        BrokerID: String,
6936        AccountID: String,
6937        BankID: String,
6938        BankBranchID: String,
6939        CurrencyID: String,
6940    }
6941    #[derive(Debug, Clone, Default)]
6942    struct AccountregisterField {
6943        is_null: bool,
6944        TradeDay: String,
6945        BankID: String,
6946        BankBranchID: String,
6947        BankAccount: String,
6948        BrokerID: String,
6949        BrokerBranchID: String,
6950        AccountID: String,
6951        IdCardType: u8,
6952        IdentifiedCardNo: String,
6953        CustomerName: String,
6954        CurrencyID: String,
6955        OpenOrDestroy: u8,
6956        RegDate: String,
6957        OutDate: String,
6958        TID: i32,
6959        CustType: u8,
6960        BankAccType: u8,
6961        LongCustomerName: String,
6962    }
6963    #[derive(Debug, Clone, Default)]
6964    struct OpenAccountField {
6965        is_null: bool,
6966        TradeCode: String,
6967        BankID: String,
6968        BankBranchID: String,
6969        BrokerID: String,
6970        BrokerBranchID: String,
6971        TradeDate: String,
6972        TradeTime: String,
6973        BankSerial: String,
6974        TradingDay: String,
6975        PlateSerial: i32,
6976        LastFragment: u8,
6977        SessionID: i32,
6978        CustomerName: String,
6979        IdCardType: u8,
6980        IdentifiedCardNo: String,
6981        Gender: u8,
6982        CountryCode: String,
6983        CustType: u8,
6984        Address: String,
6985        ZipCode: String,
6986        Telephone: String,
6987        MobilePhone: String,
6988        Fax: String,
6989        EMail: String,
6990        MoneyAccountStatus: u8,
6991        BankAccount: String,
6992        BankPassWord: String,
6993        AccountID: String,
6994        Password: String,
6995        InstallID: i32,
6996        VerifyCertNoFlag: u8,
6997        CurrencyID: String,
6998        CashExchangeCode: u8,
6999        Digest: Vec<u8>,
7000        BankAccType: u8,
7001        DeviceID: String,
7002        BankSecuAccType: u8,
7003        BrokerIDByBank: Vec<u8>,
7004        BankSecuAcc: Vec<u8>,
7005        BankPwdFlag: u8,
7006        SecuPwdFlag: u8,
7007        OperNo: String,
7008        TID: i32,
7009        UserID: String,
7010        ErrorID: i32,
7011        ErrorMsg: String,
7012        LongCustomerName: String,
7013    }
7014    #[derive(Debug, Clone, Default)]
7015    struct CancelAccountField {
7016        is_null: bool,
7017        TradeCode: String,
7018        BankID: String,
7019        BankBranchID: String,
7020        BrokerID: String,
7021        BrokerBranchID: String,
7022        TradeDate: String,
7023        TradeTime: String,
7024        BankSerial: String,
7025        TradingDay: String,
7026        PlateSerial: i32,
7027        LastFragment: u8,
7028        SessionID: i32,
7029        CustomerName: String,
7030        IdCardType: u8,
7031        IdentifiedCardNo: String,
7032        Gender: u8,
7033        CountryCode: String,
7034        CustType: u8,
7035        Address: String,
7036        ZipCode: String,
7037        Telephone: String,
7038        MobilePhone: String,
7039        Fax: String,
7040        EMail: String,
7041        MoneyAccountStatus: u8,
7042        BankAccount: String,
7043        BankPassWord: String,
7044        AccountID: String,
7045        Password: String,
7046        InstallID: i32,
7047        VerifyCertNoFlag: u8,
7048        CurrencyID: String,
7049        CashExchangeCode: u8,
7050        Digest: Vec<u8>,
7051        BankAccType: u8,
7052        DeviceID: String,
7053        BankSecuAccType: u8,
7054        BrokerIDByBank: Vec<u8>,
7055        BankSecuAcc: Vec<u8>,
7056        BankPwdFlag: u8,
7057        SecuPwdFlag: u8,
7058        OperNo: String,
7059        TID: i32,
7060        UserID: String,
7061        ErrorID: i32,
7062        ErrorMsg: String,
7063        LongCustomerName: String,
7064    }
7065    #[derive(Debug, Clone, Default)]
7066    struct ChangeAccountField {
7067        is_null: bool,
7068        TradeCode: String,
7069        BankID: String,
7070        BankBranchID: String,
7071        BrokerID: String,
7072        BrokerBranchID: String,
7073        TradeDate: String,
7074        TradeTime: String,
7075        BankSerial: String,
7076        TradingDay: String,
7077        PlateSerial: i32,
7078        LastFragment: u8,
7079        SessionID: i32,
7080        CustomerName: String,
7081        IdCardType: u8,
7082        IdentifiedCardNo: String,
7083        Gender: u8,
7084        CountryCode: String,
7085        CustType: u8,
7086        Address: String,
7087        ZipCode: String,
7088        Telephone: String,
7089        MobilePhone: String,
7090        Fax: String,
7091        EMail: String,
7092        MoneyAccountStatus: u8,
7093        BankAccount: String,
7094        BankPassWord: String,
7095        NewBankAccount: String,
7096        NewBankPassWord: String,
7097        AccountID: String,
7098        Password: String,
7099        BankAccType: u8,
7100        InstallID: i32,
7101        VerifyCertNoFlag: u8,
7102        CurrencyID: String,
7103        BrokerIDByBank: Vec<u8>,
7104        BankPwdFlag: u8,
7105        SecuPwdFlag: u8,
7106        TID: i32,
7107        Digest: Vec<u8>,
7108        ErrorID: i32,
7109        ErrorMsg: String,
7110        LongCustomerName: String,
7111    }
7112    #[derive(Debug, Clone, Default)]
7113    struct SecAgentACIDMapField {
7114        is_null: bool,
7115        BrokerID: String,
7116        UserID: String,
7117        AccountID: String,
7118        CurrencyID: String,
7119        BrokerSecAgentID: String,
7120    }
7121    #[derive(Debug, Clone, Default)]
7122    struct QrySecAgentACIDMapField {
7123        is_null: bool,
7124        BrokerID: String,
7125        UserID: String,
7126        AccountID: String,
7127        CurrencyID: String,
7128    }
7129    #[derive(Debug, Clone, Default)]
7130    struct UserRightsAssignField {
7131        is_null: bool,
7132        BrokerID: String,
7133        UserID: String,
7134        DRIdentityID: i32,
7135    }
7136    #[derive(Debug, Clone, Default)]
7137    struct BrokerUserRightAssignField {
7138        is_null: bool,
7139        BrokerID: String,
7140        DRIdentityID: i32,
7141        Tradeable: i32,
7142    }
7143    #[derive(Debug, Clone, Default)]
7144    struct DRTransferField {
7145        is_null: bool,
7146        OrigDRIdentityID: i32,
7147        DestDRIdentityID: i32,
7148        OrigBrokerID: String,
7149        DestBrokerID: String,
7150    }
7151    #[derive(Debug, Clone, Default)]
7152    struct FensUserInfoField {
7153        is_null: bool,
7154        BrokerID: String,
7155        UserID: String,
7156        LoginMode: u8,
7157    }
7158    #[derive(Debug, Clone, Default)]
7159    struct CurrTransferIdentityField {
7160        is_null: bool,
7161        IdentityID: i32,
7162    }
7163    #[derive(Debug, Clone, Default)]
7164    struct LoginForbiddenUserField {
7165        is_null: bool,
7166        BrokerID: String,
7167        UserID: String,
7168        IPAddress: String,
7169    }
7170    #[derive(Debug, Clone, Default)]
7171    struct QryLoginForbiddenUserField {
7172        is_null: bool,
7173        BrokerID: String,
7174        UserID: String,
7175    }
7176    #[derive(Debug, Clone, Default)]
7177    struct TradingAccountReserveField {
7178        is_null: bool,
7179        BrokerID: String,
7180        AccountID: String,
7181        Reserve: f64,
7182        CurrencyID: String,
7183    }
7184    #[derive(Debug, Clone, Default)]
7185    struct QryLoginForbiddenIPField {
7186        is_null: bool,
7187        IPAddress: String,
7188    }
7189    #[derive(Debug, Clone, Default)]
7190    struct QryIPListField {
7191        is_null: bool,
7192        IPAddress: String,
7193    }
7194    #[derive(Debug, Clone, Default)]
7195    struct QryUserRightsAssignField {
7196        is_null: bool,
7197        BrokerID: String,
7198        UserID: String,
7199    }
7200    #[derive(Debug, Clone, Default)]
7201    struct ReserveOpenAccountConfirmField {
7202        is_null: bool,
7203        TradeCode: String,
7204        BankID: String,
7205        BankBranchID: String,
7206        BrokerID: String,
7207        BrokerBranchID: String,
7208        TradeDate: String,
7209        TradeTime: String,
7210        BankSerial: String,
7211        TradingDay: String,
7212        PlateSerial: i32,
7213        LastFragment: u8,
7214        SessionID: i32,
7215        CustomerName: String,
7216        IdCardType: u8,
7217        IdentifiedCardNo: String,
7218        Gender: u8,
7219        CountryCode: String,
7220        CustType: u8,
7221        Address: String,
7222        ZipCode: String,
7223        Telephone: String,
7224        MobilePhone: String,
7225        Fax: String,
7226        EMail: String,
7227        MoneyAccountStatus: u8,
7228        BankAccount: String,
7229        BankPassWord: String,
7230        InstallID: i32,
7231        VerifyCertNoFlag: u8,
7232        CurrencyID: String,
7233        Digest: Vec<u8>,
7234        BankAccType: u8,
7235        BrokerIDByBank: Vec<u8>,
7236        TID: i32,
7237        AccountID: String,
7238        Password: String,
7239        BankReserveOpenSeq: Vec<u8>,
7240        BookDate: String,
7241        BookPsw: Vec<u8>,
7242        ErrorID: i32,
7243        ErrorMsg: String,
7244    }
7245    #[derive(Debug, Clone, Default)]
7246    struct ReserveOpenAccountField {
7247        is_null: bool,
7248        TradeCode: String,
7249        BankID: String,
7250        BankBranchID: String,
7251        BrokerID: String,
7252        BrokerBranchID: String,
7253        TradeDate: String,
7254        TradeTime: String,
7255        BankSerial: String,
7256        TradingDay: String,
7257        PlateSerial: i32,
7258        LastFragment: u8,
7259        SessionID: i32,
7260        CustomerName: String,
7261        IdCardType: u8,
7262        IdentifiedCardNo: String,
7263        Gender: u8,
7264        CountryCode: String,
7265        CustType: u8,
7266        Address: String,
7267        ZipCode: String,
7268        Telephone: String,
7269        MobilePhone: String,
7270        Fax: String,
7271        EMail: String,
7272        MoneyAccountStatus: u8,
7273        BankAccount: String,
7274        BankPassWord: String,
7275        InstallID: i32,
7276        VerifyCertNoFlag: u8,
7277        CurrencyID: String,
7278        Digest: Vec<u8>,
7279        BankAccType: u8,
7280        BrokerIDByBank: Vec<u8>,
7281        TID: i32,
7282        ReserveOpenAccStas: u8,
7283        ErrorID: i32,
7284        ErrorMsg: String,
7285    }
7286    #[derive(Debug, Clone, Default)]
7287    struct AccountPropertyField {
7288        is_null: bool,
7289        BrokerID: String,
7290        AccountID: String,
7291        BankID: String,
7292        BankAccount: String,
7293        OpenName: String,
7294        OpenBank: Vec<u8>,
7295        IsActive: i32,
7296        AccountSourceType: u8,
7297        OpenDate: String,
7298        CancelDate: String,
7299        OperatorID: String,
7300        OperateDate: String,
7301        OperateTime: String,
7302        CurrencyID: String,
7303    }
7304    #[derive(Debug, Clone, Default)]
7305    struct QryCurrDRIdentityField {
7306        is_null: bool,
7307        DRIdentityID: i32,
7308    }
7309    #[derive(Debug, Clone, Default)]
7310    struct CurrDRIdentityField {
7311        is_null: bool,
7312        DRIdentityID: i32,
7313    }
7314    #[derive(Debug, Clone, Default)]
7315    struct QrySecAgentCheckModeField {
7316        is_null: bool,
7317        BrokerID: String,
7318        InvestorID: String,
7319    }
7320    #[derive(Debug, Clone, Default)]
7321    struct QrySecAgentTradeInfoField {
7322        is_null: bool,
7323        BrokerID: String,
7324        BrokerSecAgentID: String,
7325    }
7326    #[derive(Debug, Clone, Default)]
7327    struct ReqUserAuthMethodField {
7328        is_null: bool,
7329        TradingDay: String,
7330        BrokerID: String,
7331        UserID: String,
7332    }
7333    #[derive(Debug, Clone, Default)]
7334    struct RspUserAuthMethodField {
7335        is_null: bool,
7336        UsableAuthMethod: i32,
7337    }
7338    #[derive(Debug, Clone, Default)]
7339    struct ReqGenUserCaptchaField {
7340        is_null: bool,
7341        TradingDay: String,
7342        BrokerID: String,
7343        UserID: String,
7344    }
7345    #[derive(Debug, Clone, Default)]
7346    struct RspGenUserCaptchaField {
7347        is_null: bool,
7348        BrokerID: String,
7349        UserID: String,
7350        CaptchaInfoLen: i32,
7351        CaptchaInfo: String,
7352    }
7353    #[derive(Debug, Clone, Default)]
7354    struct ReqGenUserTextField {
7355        is_null: bool,
7356        TradingDay: String,
7357        BrokerID: String,
7358        UserID: String,
7359    }
7360    #[derive(Debug, Clone, Default)]
7361    struct RspGenUserTextField {
7362        is_null: bool,
7363        UserTextSeq: i32,
7364    }
7365    #[derive(Debug, Clone, Default)]
7366    struct ReqUserLoginWithCaptchaField {
7367        is_null: bool,
7368        TradingDay: String,
7369        BrokerID: String,
7370        UserID: String,
7371        Password: String,
7372        UserProductInfo: String,
7373        InterfaceProductInfo: String,
7374        ProtocolInfo: String,
7375        MacAddress: String,
7376        LoginRemark: String,
7377        Captcha: Vec<u8>,
7378        ClientIPPort: i32,
7379        ClientIPAddress: String,
7380    }
7381    #[derive(Debug, Clone, Default)]
7382    struct ReqUserLoginWithTextField {
7383        is_null: bool,
7384        TradingDay: String,
7385        BrokerID: String,
7386        UserID: String,
7387        Password: String,
7388        UserProductInfo: String,
7389        InterfaceProductInfo: String,
7390        ProtocolInfo: String,
7391        MacAddress: String,
7392        LoginRemark: String,
7393        Text: Vec<u8>,
7394        ClientIPPort: i32,
7395        ClientIPAddress: String,
7396    }
7397    #[derive(Debug, Clone, Default)]
7398    struct ReqUserLoginWithOTPField {
7399        is_null: bool,
7400        TradingDay: String,
7401        BrokerID: String,
7402        UserID: String,
7403        Password: String,
7404        UserProductInfo: String,
7405        InterfaceProductInfo: String,
7406        ProtocolInfo: String,
7407        MacAddress: String,
7408        LoginRemark: String,
7409        OTPPassword: String,
7410        ClientIPPort: i32,
7411        ClientIPAddress: String,
7412    }
7413    #[derive(Debug, Clone, Default)]
7414    struct ReqApiHandshakeField {
7415        is_null: bool,
7416        CryptoKeyVersion: String,
7417    }
7418    #[derive(Debug, Clone, Default)]
7419    struct RspApiHandshakeField {
7420        is_null: bool,
7421        FrontHandshakeDataLen: i32,
7422        FrontHandshakeData: Vec<u8>,
7423        IsApiAuthEnabled: i32,
7424    }
7425    #[derive(Debug, Clone, Default)]
7426    struct ReqVerifyApiKeyField {
7427        is_null: bool,
7428        ApiHandshakeDataLen: i32,
7429        ApiHandshakeData: Vec<u8>,
7430    }
7431    #[derive(Debug, Clone, Default)]
7432    struct DepartmentUserField {
7433        is_null: bool,
7434        BrokerID: String,
7435        UserID: String,
7436        InvestorRange: u8,
7437        InvestorID: String,
7438    }
7439    #[derive(Debug, Clone, Default)]
7440    struct QueryFreqField {
7441        is_null: bool,
7442        QueryFreq: i32,
7443        FTDPkgFreq: i32,
7444    }
7445    #[derive(Debug, Clone, Default)]
7446    struct AuthForbiddenIPField {
7447        is_null: bool,
7448        IPAddress: String,
7449    }
7450    #[derive(Debug, Clone, Default)]
7451    struct QryAuthForbiddenIPField {
7452        is_null: bool,
7453        IPAddress: String,
7454    }
7455    #[derive(Debug, Clone, Default)]
7456    struct SyncDelaySwapFrozenField {
7457        is_null: bool,
7458        DelaySwapSeqNo: Vec<u8>,
7459        BrokerID: String,
7460        InvestorID: String,
7461        FromCurrencyID: String,
7462        FromRemainSwap: f64,
7463        IsManualSwap: i32,
7464    }
7465    #[derive(Debug, Clone, Default)]
7466    struct UserSystemInfoField {
7467        is_null: bool,
7468        BrokerID: String,
7469        UserID: String,
7470        ClientSystemInfoLen: i32,
7471        ClientSystemInfo: String,
7472        ClientIPPort: i32,
7473        ClientLoginTime: String,
7474        ClientAppID: String,
7475        ClientPublicIP: String,
7476        ClientLoginRemark: String,
7477    }
7478    #[derive(Debug, Clone, Default)]
7479    struct AuthUserIDField {
7480        is_null: bool,
7481        BrokerID: String,
7482        AppID: String,
7483        UserID: String,
7484        AuthType: u8,
7485    }
7486    #[derive(Debug, Clone, Default)]
7487    struct AuthIPField {
7488        is_null: bool,
7489        BrokerID: String,
7490        AppID: String,
7491        IPAddress: String,
7492    }
7493    #[derive(Debug, Clone, Default)]
7494    struct QryClassifiedInstrumentField {
7495        is_null: bool,
7496        InstrumentID: String,
7497        ExchangeID: String,
7498        ExchangeInstID: String,
7499        ProductID: String,
7500        TradingType: u8,
7501        ClassType: u8,
7502    }
7503    #[derive(Debug, Clone, Default)]
7504    struct QryCombPromotionParamField {
7505        is_null: bool,
7506        ExchangeID: String,
7507        InstrumentID: String,
7508    }
7509    #[derive(Debug, Clone, Default)]
7510    struct CombPromotionParamField {
7511        is_null: bool,
7512        ExchangeID: String,
7513        InstrumentID: String,
7514        CombHedgeFlag: String,
7515        Xparameter: f64,
7516    }
7517    #[derive(Debug, Clone, Default)]
7518    struct ReqUserLoginSMField {
7519        is_null: bool,
7520        TradingDay: String,
7521        BrokerID: String,
7522        UserID: String,
7523        Password: String,
7524        UserProductInfo: String,
7525        InterfaceProductInfo: String,
7526        ProtocolInfo: String,
7527        MacAddress: String,
7528        OneTimePassword: String,
7529        LoginRemark: String,
7530        ClientIPPort: i32,
7531        ClientIPAddress: String,
7532        BrokerName: String,
7533        AuthCode: String,
7534        AppID: String,
7535        PIN: Vec<u8>,
7536    }
7537    #[derive(Debug, Clone, Default)]
7538    struct QryRiskSettleInvstPositionField {
7539        is_null: bool,
7540        BrokerID: String,
7541        InvestorID: String,
7542        InstrumentID: String,
7543    }
7544    #[derive(Debug, Clone, Default)]
7545    struct QryRiskSettleProductStatusField {
7546        is_null: bool,
7547        ProductID: String,
7548    }
7549    #[derive(Debug, Clone, Default)]
7550    struct RiskSettleInvstPositionField {
7551        is_null: bool,
7552        InstrumentID: String,
7553        BrokerID: String,
7554        InvestorID: String,
7555        PosiDirection: u8,
7556        HedgeFlag: u8,
7557        PositionDate: u8,
7558        YdPosition: i32,
7559        Position: i32,
7560        LongFrozen: i32,
7561        ShortFrozen: i32,
7562        LongFrozenAmount: f64,
7563        ShortFrozenAmount: f64,
7564        OpenVolume: i32,
7565        CloseVolume: i32,
7566        OpenAmount: f64,
7567        CloseAmount: f64,
7568        PositionCost: f64,
7569        PreMargin: f64,
7570        UseMargin: f64,
7571        FrozenMargin: f64,
7572        FrozenCash: f64,
7573        FrozenCommission: f64,
7574        CashIn: f64,
7575        Commission: f64,
7576        CloseProfit: f64,
7577        PositionProfit: f64,
7578        PreSettlementPrice: f64,
7579        SettlementPrice: f64,
7580        TradingDay: String,
7581        SettlementID: i32,
7582        OpenCost: f64,
7583        ExchangeMargin: f64,
7584        CombPosition: i32,
7585        CombLongFrozen: i32,
7586        CombShortFrozen: i32,
7587        CloseProfitByDate: f64,
7588        CloseProfitByTrade: f64,
7589        TodayPosition: i32,
7590        MarginRateByMoney: f64,
7591        MarginRateByVolume: f64,
7592        StrikeFrozen: i32,
7593        StrikeFrozenAmount: f64,
7594        AbandonFrozen: i32,
7595        ExchangeID: String,
7596        YdStrikeFrozen: i32,
7597        InvestUnitID: String,
7598        PositionCostOffset: f64,
7599        TasPosition: i32,
7600        TasPositionCost: f64,
7601    }
7602    #[derive(Debug, Clone, Default)]
7603    struct RiskSettleProductStatusField {
7604        is_null: bool,
7605        ExchangeID: String,
7606        ProductID: String,
7607        ProductStatus: u8,
7608    }
7609    #[derive(Debug, Clone, Default)]
7610    struct SyncDeltaInfoField {
7611        is_null: bool,
7612        SyncDeltaSequenceNo: i32,
7613        SyncDeltaStatus: u8,
7614        SyncDescription: Vec<u8>,
7615        IsOnlyTrdDelta: i32,
7616    }
7617    #[derive(Debug, Clone, Default)]
7618    struct SyncDeltaProductStatusField {
7619        is_null: bool,
7620        SyncDeltaSequenceNo: i32,
7621        ExchangeID: String,
7622        ProductID: String,
7623        ProductStatus: u8,
7624    }
7625    #[derive(Debug, Clone, Default)]
7626    struct SyncDeltaInvstPosDtlField {
7627        is_null: bool,
7628        InstrumentID: String,
7629        BrokerID: String,
7630        InvestorID: String,
7631        HedgeFlag: u8,
7632        Direction: u8,
7633        OpenDate: String,
7634        TradeID: String,
7635        Volume: i32,
7636        OpenPrice: f64,
7637        TradingDay: String,
7638        SettlementID: i32,
7639        TradeType: u8,
7640        CombInstrumentID: String,
7641        ExchangeID: String,
7642        CloseProfitByDate: f64,
7643        CloseProfitByTrade: f64,
7644        PositionProfitByDate: f64,
7645        PositionProfitByTrade: f64,
7646        Margin: f64,
7647        ExchMargin: f64,
7648        MarginRateByMoney: f64,
7649        MarginRateByVolume: f64,
7650        LastSettlementPrice: f64,
7651        SettlementPrice: f64,
7652        CloseVolume: i32,
7653        CloseAmount: f64,
7654        TimeFirstVolume: i32,
7655        SpecPosiType: u8,
7656        ActionDirection: u8,
7657        SyncDeltaSequenceNo: i32,
7658    }
7659    #[derive(Debug, Clone, Default)]
7660    struct SyncDeltaInvstPosCombDtlField {
7661        is_null: bool,
7662        TradingDay: String,
7663        OpenDate: String,
7664        ExchangeID: String,
7665        SettlementID: i32,
7666        BrokerID: String,
7667        InvestorID: String,
7668        ComTradeID: String,
7669        TradeID: String,
7670        InstrumentID: String,
7671        HedgeFlag: u8,
7672        Direction: u8,
7673        TotalAmt: i32,
7674        Margin: f64,
7675        ExchMargin: f64,
7676        MarginRateByMoney: f64,
7677        MarginRateByVolume: f64,
7678        LegID: i32,
7679        LegMultiple: i32,
7680        TradeGroupID: i32,
7681        ActionDirection: u8,
7682        SyncDeltaSequenceNo: i32,
7683    }
7684    #[derive(Debug, Clone, Default)]
7685    struct SyncDeltaTradingAccountField {
7686        is_null: bool,
7687        BrokerID: String,
7688        AccountID: String,
7689        PreMortgage: f64,
7690        PreCredit: f64,
7691        PreDeposit: f64,
7692        PreBalance: f64,
7693        PreMargin: f64,
7694        InterestBase: f64,
7695        Interest: f64,
7696        Deposit: f64,
7697        Withdraw: f64,
7698        FrozenMargin: f64,
7699        FrozenCash: f64,
7700        FrozenCommission: f64,
7701        CurrMargin: f64,
7702        CashIn: f64,
7703        Commission: f64,
7704        CloseProfit: f64,
7705        PositionProfit: f64,
7706        Balance: f64,
7707        Available: f64,
7708        WithdrawQuota: f64,
7709        Reserve: f64,
7710        TradingDay: String,
7711        SettlementID: i32,
7712        Credit: f64,
7713        Mortgage: f64,
7714        ExchangeMargin: f64,
7715        DeliveryMargin: f64,
7716        ExchangeDeliveryMargin: f64,
7717        ReserveBalance: f64,
7718        CurrencyID: String,
7719        PreFundMortgageIn: f64,
7720        PreFundMortgageOut: f64,
7721        FundMortgageIn: f64,
7722        FundMortgageOut: f64,
7723        FundMortgageAvailable: f64,
7724        MortgageableFund: f64,
7725        SpecProductMargin: f64,
7726        SpecProductFrozenMargin: f64,
7727        SpecProductCommission: f64,
7728        SpecProductFrozenCommission: f64,
7729        SpecProductPositionProfit: f64,
7730        SpecProductCloseProfit: f64,
7731        SpecProductPositionProfitByAlg: f64,
7732        SpecProductExchangeMargin: f64,
7733        FrozenSwap: f64,
7734        RemainSwap: f64,
7735        OptionValue: f64,
7736        SyncDeltaSequenceNo: i32,
7737    }
7738    #[derive(Debug, Clone, Default)]
7739    struct SyncDeltaInitInvstMarginField {
7740        is_null: bool,
7741        BrokerID: String,
7742        InvestorID: String,
7743        LastRiskTotalInvstMargin: f64,
7744        LastRiskTotalExchMargin: f64,
7745        ThisSyncInvstMargin: f64,
7746        ThisSyncExchMargin: f64,
7747        RemainRiskInvstMargin: f64,
7748        RemainRiskExchMargin: f64,
7749        LastRiskSpecTotalInvstMargin: f64,
7750        LastRiskSpecTotalExchMargin: f64,
7751        ThisSyncSpecInvstMargin: f64,
7752        ThisSyncSpecExchMargin: f64,
7753        RemainRiskSpecInvstMargin: f64,
7754        RemainRiskSpecExchMargin: f64,
7755        SyncDeltaSequenceNo: i32,
7756    }
7757    #[derive(Debug, Clone, Default)]
7758    struct SyncDeltaDceCombInstrumentField {
7759        is_null: bool,
7760        CombInstrumentID: String,
7761        ExchangeID: String,
7762        ExchangeInstID: String,
7763        TradeGroupID: i32,
7764        CombHedgeFlag: u8,
7765        CombinationType: u8,
7766        Direction: u8,
7767        ProductID: String,
7768        Xparameter: f64,
7769        ActionDirection: u8,
7770        SyncDeltaSequenceNo: i32,
7771    }
7772    #[derive(Debug, Clone, Default)]
7773    struct SyncDeltaInvstMarginRateField {
7774        is_null: bool,
7775        InstrumentID: String,
7776        InvestorRange: u8,
7777        BrokerID: String,
7778        InvestorID: String,
7779        HedgeFlag: u8,
7780        LongMarginRatioByMoney: f64,
7781        LongMarginRatioByVolume: f64,
7782        ShortMarginRatioByMoney: f64,
7783        ShortMarginRatioByVolume: f64,
7784        IsRelative: i32,
7785        ActionDirection: u8,
7786        SyncDeltaSequenceNo: i32,
7787    }
7788    #[derive(Debug, Clone, Default)]
7789    struct SyncDeltaExchMarginRateField {
7790        is_null: bool,
7791        BrokerID: String,
7792        InstrumentID: String,
7793        HedgeFlag: u8,
7794        LongMarginRatioByMoney: f64,
7795        LongMarginRatioByVolume: f64,
7796        ShortMarginRatioByMoney: f64,
7797        ShortMarginRatioByVolume: f64,
7798        ActionDirection: u8,
7799        SyncDeltaSequenceNo: i32,
7800    }
7801    #[derive(Debug, Clone, Default)]
7802    struct SyncDeltaOptExchMarginField {
7803        is_null: bool,
7804        BrokerID: String,
7805        InstrumentID: String,
7806        SShortMarginRatioByMoney: f64,
7807        SShortMarginRatioByVolume: f64,
7808        HShortMarginRatioByMoney: f64,
7809        HShortMarginRatioByVolume: f64,
7810        AShortMarginRatioByMoney: f64,
7811        AShortMarginRatioByVolume: f64,
7812        MShortMarginRatioByMoney: f64,
7813        MShortMarginRatioByVolume: f64,
7814        ActionDirection: u8,
7815        SyncDeltaSequenceNo: i32,
7816    }
7817    #[derive(Debug, Clone, Default)]
7818    struct SyncDeltaOptInvstMarginField {
7819        is_null: bool,
7820        InstrumentID: String,
7821        InvestorRange: u8,
7822        BrokerID: String,
7823        InvestorID: String,
7824        SShortMarginRatioByMoney: f64,
7825        SShortMarginRatioByVolume: f64,
7826        HShortMarginRatioByMoney: f64,
7827        HShortMarginRatioByVolume: f64,
7828        AShortMarginRatioByMoney: f64,
7829        AShortMarginRatioByVolume: f64,
7830        IsRelative: i32,
7831        MShortMarginRatioByMoney: f64,
7832        MShortMarginRatioByVolume: f64,
7833        ActionDirection: u8,
7834        SyncDeltaSequenceNo: i32,
7835    }
7836    #[derive(Debug, Clone, Default)]
7837    struct SyncDeltaInvstMarginRateULField {
7838        is_null: bool,
7839        InstrumentID: String,
7840        InvestorRange: u8,
7841        BrokerID: String,
7842        InvestorID: String,
7843        HedgeFlag: u8,
7844        LongMarginRatioByMoney: f64,
7845        LongMarginRatioByVolume: f64,
7846        ShortMarginRatioByMoney: f64,
7847        ShortMarginRatioByVolume: f64,
7848        ActionDirection: u8,
7849        SyncDeltaSequenceNo: i32,
7850    }
7851    #[derive(Debug, Clone, Default)]
7852    struct SyncDeltaOptInvstCommRateField {
7853        is_null: bool,
7854        InstrumentID: String,
7855        InvestorRange: u8,
7856        BrokerID: String,
7857        InvestorID: String,
7858        OpenRatioByMoney: f64,
7859        OpenRatioByVolume: f64,
7860        CloseRatioByMoney: f64,
7861        CloseRatioByVolume: f64,
7862        CloseTodayRatioByMoney: f64,
7863        CloseTodayRatioByVolume: f64,
7864        StrikeRatioByMoney: f64,
7865        StrikeRatioByVolume: f64,
7866        ActionDirection: u8,
7867        SyncDeltaSequenceNo: i32,
7868    }
7869    #[derive(Debug, Clone, Default)]
7870    struct SyncDeltaInvstCommRateField {
7871        is_null: bool,
7872        InstrumentID: String,
7873        InvestorRange: u8,
7874        BrokerID: String,
7875        InvestorID: String,
7876        OpenRatioByMoney: f64,
7877        OpenRatioByVolume: f64,
7878        CloseRatioByMoney: f64,
7879        CloseRatioByVolume: f64,
7880        CloseTodayRatioByMoney: f64,
7881        CloseTodayRatioByVolume: f64,
7882        ActionDirection: u8,
7883        SyncDeltaSequenceNo: i32,
7884    }
7885    #[derive(Debug, Clone, Default)]
7886    struct SyncDeltaProductExchRateField {
7887        is_null: bool,
7888        ProductID: String,
7889        QuoteCurrencyID: String,
7890        ExchangeRate: f64,
7891        ActionDirection: u8,
7892        SyncDeltaSequenceNo: i32,
7893    }
7894    #[derive(Debug, Clone, Default)]
7895    struct SyncDeltaDepthMarketDataField {
7896        is_null: bool,
7897        TradingDay: String,
7898        InstrumentID: String,
7899        ExchangeID: String,
7900        ExchangeInstID: String,
7901        LastPrice: f64,
7902        PreSettlementPrice: f64,
7903        PreClosePrice: f64,
7904        PreOpenInterest: f64,
7905        OpenPrice: f64,
7906        HighestPrice: f64,
7907        LowestPrice: f64,
7908        Volume: i32,
7909        Turnover: f64,
7910        OpenInterest: f64,
7911        ClosePrice: f64,
7912        SettlementPrice: f64,
7913        UpperLimitPrice: f64,
7914        LowerLimitPrice: f64,
7915        PreDelta: f64,
7916        CurrDelta: f64,
7917        UpdateTime: String,
7918        UpdateMillisec: i32,
7919        BidPrice1: f64,
7920        BidVolume1: i32,
7921        AskPrice1: f64,
7922        AskVolume1: i32,
7923        BidPrice2: f64,
7924        BidVolume2: i32,
7925        AskPrice2: f64,
7926        AskVolume2: i32,
7927        BidPrice3: f64,
7928        BidVolume3: i32,
7929        AskPrice3: f64,
7930        AskVolume3: i32,
7931        BidPrice4: f64,
7932        BidVolume4: i32,
7933        AskPrice4: f64,
7934        AskVolume4: i32,
7935        BidPrice5: f64,
7936        BidVolume5: i32,
7937        AskPrice5: f64,
7938        AskVolume5: i32,
7939        AveragePrice: f64,
7940        ActionDay: String,
7941        BandingUpperPrice: f64,
7942        BandingLowerPrice: f64,
7943        ActionDirection: u8,
7944        SyncDeltaSequenceNo: i32,
7945    }
7946    #[derive(Debug, Clone, Default)]
7947    struct SyncDeltaIndexPriceField {
7948        is_null: bool,
7949        BrokerID: String,
7950        InstrumentID: String,
7951        ClosePrice: f64,
7952        ActionDirection: u8,
7953        SyncDeltaSequenceNo: i32,
7954    }
7955    #[derive(Debug, Clone, Default)]
7956    struct SyncDeltaEWarrantOffsetField {
7957        is_null: bool,
7958        TradingDay: String,
7959        BrokerID: String,
7960        InvestorID: String,
7961        ExchangeID: String,
7962        InstrumentID: String,
7963        Direction: u8,
7964        HedgeFlag: u8,
7965        Volume: i32,
7966        ActionDirection: u8,
7967        SyncDeltaSequenceNo: i32,
7968    }
7969    #[derive(Debug, Clone, Default)]
7970    struct SPBMFutureParameterField {
7971        is_null: bool,
7972        TradingDay: String,
7973        ExchangeID: String,
7974        InstrumentID: String,
7975        ProdFamilyCode: String,
7976        Cvf: i32,
7977        TimeRange: u8,
7978        MarginRate: f64,
7979        LockRateX: f64,
7980        AddOnRate: f64,
7981        PreSettlementPrice: f64,
7982        AddOnLockRateX2: f64,
7983    }
7984    #[derive(Debug, Clone, Default)]
7985    struct SPBMOptionParameterField {
7986        is_null: bool,
7987        TradingDay: String,
7988        ExchangeID: String,
7989        InstrumentID: String,
7990        ProdFamilyCode: String,
7991        Cvf: i32,
7992        DownPrice: f64,
7993        Delta: f64,
7994        SlimiDelta: f64,
7995        PreSettlementPrice: f64,
7996    }
7997    #[derive(Debug, Clone, Default)]
7998    struct SPBMIntraParameterField {
7999        is_null: bool,
8000        TradingDay: String,
8001        ExchangeID: String,
8002        ProdFamilyCode: String,
8003        IntraRateY: f64,
8004        AddOnIntraRateY2: f64,
8005    }
8006    #[derive(Debug, Clone, Default)]
8007    struct SPBMInterParameterField {
8008        is_null: bool,
8009        TradingDay: String,
8010        ExchangeID: String,
8011        SpreadId: i32,
8012        InterRateZ: f64,
8013        Leg1ProdFamilyCode: String,
8014        Leg2ProdFamilyCode: String,
8015    }
8016    #[derive(Debug, Clone, Default)]
8017    struct SyncSPBMParameterEndField {
8018        is_null: bool,
8019        TradingDay: String,
8020    }
8021    #[derive(Debug, Clone, Default)]
8022    struct QrySPBMFutureParameterField {
8023        is_null: bool,
8024        ExchangeID: String,
8025        InstrumentID: String,
8026        ProdFamilyCode: String,
8027    }
8028    #[derive(Debug, Clone, Default)]
8029    struct QrySPBMOptionParameterField {
8030        is_null: bool,
8031        ExchangeID: String,
8032        InstrumentID: String,
8033        ProdFamilyCode: String,
8034    }
8035    #[derive(Debug, Clone, Default)]
8036    struct QrySPBMIntraParameterField {
8037        is_null: bool,
8038        ExchangeID: String,
8039        ProdFamilyCode: String,
8040    }
8041    #[derive(Debug, Clone, Default)]
8042    struct QrySPBMInterParameterField {
8043        is_null: bool,
8044        ExchangeID: String,
8045        Leg1ProdFamilyCode: String,
8046        Leg2ProdFamilyCode: String,
8047    }
8048    #[derive(Debug, Clone, Default)]
8049    struct SPBMPortfDefinitionField {
8050        is_null: bool,
8051        ExchangeID: String,
8052        PortfolioDefID: i32,
8053        ProdFamilyCode: String,
8054        IsSPBM: i32,
8055    }
8056    #[derive(Debug, Clone, Default)]
8057    struct SPBMInvestorPortfDefField {
8058        is_null: bool,
8059        ExchangeID: String,
8060        BrokerID: String,
8061        InvestorID: String,
8062        PortfolioDefID: i32,
8063    }
8064    #[derive(Debug, Clone, Default)]
8065    struct InvestorPortfMarginRatioField {
8066        is_null: bool,
8067        InvestorRange: u8,
8068        BrokerID: String,
8069        InvestorID: String,
8070        ExchangeID: String,
8071        MarginRatio: f64,
8072        ProductGroupID: String,
8073    }
8074    #[derive(Debug, Clone, Default)]
8075    struct QrySPBMPortfDefinitionField {
8076        is_null: bool,
8077        ExchangeID: String,
8078        PortfolioDefID: i32,
8079        ProdFamilyCode: String,
8080    }
8081    #[derive(Debug, Clone, Default)]
8082    struct QrySPBMInvestorPortfDefField {
8083        is_null: bool,
8084        ExchangeID: String,
8085        BrokerID: String,
8086        InvestorID: String,
8087    }
8088    #[derive(Debug, Clone, Default)]
8089    struct QryInvestorPortfMarginRatioField {
8090        is_null: bool,
8091        BrokerID: String,
8092        InvestorID: String,
8093        ExchangeID: String,
8094        ProductGroupID: String,
8095    }
8096    #[derive(Debug, Clone, Default)]
8097    struct InvestorProdSPBMDetailField {
8098        is_null: bool,
8099        ExchangeID: String,
8100        BrokerID: String,
8101        InvestorID: String,
8102        ProdFamilyCode: String,
8103        IntraInstrMargin: f64,
8104        BCollectingMargin: f64,
8105        SCollectingMargin: f64,
8106        IntraProdMargin: f64,
8107        NetMargin: f64,
8108        InterProdMargin: f64,
8109        SingleMargin: f64,
8110        AddOnMargin: f64,
8111        DeliveryMargin: f64,
8112        CallOptionMinRisk: f64,
8113        PutOptionMinRisk: f64,
8114        OptionMinRisk: f64,
8115        OptionValueOffset: f64,
8116        OptionRoyalty: f64,
8117        RealOptionValueOffset: f64,
8118        Margin: f64,
8119        ExchMargin: f64,
8120    }
8121    #[derive(Debug, Clone, Default)]
8122    struct QryInvestorProdSPBMDetailField {
8123        is_null: bool,
8124        ExchangeID: String,
8125        BrokerID: String,
8126        InvestorID: String,
8127        ProdFamilyCode: String,
8128    }
8129    #[derive(Debug, Clone, Default)]
8130    struct PortfTradeParamSettingField {
8131        is_null: bool,
8132        ExchangeID: String,
8133        BrokerID: String,
8134        InvestorID: String,
8135        Portfolio: u8,
8136        IsActionVerify: i32,
8137        IsCloseVerify: i32,
8138    }
8139    #[derive(Debug, Clone, Default)]
8140    struct InvestorTradingRightField {
8141        is_null: bool,
8142        BrokerID: String,
8143        InvestorID: String,
8144        InvstTradingRight: u8,
8145    }
8146    #[derive(Debug, Clone, Default)]
8147    struct MortgageParamField {
8148        is_null: bool,
8149        BrokerID: String,
8150        AccountID: String,
8151        MortgageBalance: f64,
8152        CheckMortgageRatio: i32,
8153    }
8154    #[derive(Debug, Clone, Default)]
8155    struct WithDrawParamField {
8156        is_null: bool,
8157        BrokerID: String,
8158        AccountID: String,
8159        WithDrawParamID: u8,
8160        WithDrawParamValue: Vec<u8>,
8161    }
8162    #[derive(Debug, Clone, Default)]
8163    struct ThostUserFunctionField {
8164        is_null: bool,
8165        BrokerID: String,
8166        UserID: String,
8167        ThostFunctionCode: i32,
8168    }
8169    #[derive(Debug, Clone, Default)]
8170    struct QryThostUserFunctionField {
8171        is_null: bool,
8172        BrokerID: String,
8173        UserID: String,
8174    }
8175    #[derive(Debug, Clone, Default)]
8176    struct SPBMAddOnInterParameterField {
8177        is_null: bool,
8178        TradingDay: String,
8179        ExchangeID: String,
8180        SpreadId: i32,
8181        AddOnInterRateZ2: f64,
8182        Leg1ProdFamilyCode: String,
8183        Leg2ProdFamilyCode: String,
8184    }
8185    #[derive(Debug, Clone, Default)]
8186    struct QrySPBMAddOnInterParameterField {
8187        is_null: bool,
8188        ExchangeID: String,
8189        Leg1ProdFamilyCode: String,
8190        Leg2ProdFamilyCode: String,
8191    }
8192    #[derive(Debug, Clone, Default)]
8193    struct QryInvestorCommoditySPMMMarginField {
8194        is_null: bool,
8195        BrokerID: String,
8196        InvestorID: String,
8197        CommodityID: String,
8198    }
8199    #[derive(Debug, Clone, Default)]
8200    struct QryInvestorCommodityGroupSPMMMarginField {
8201        is_null: bool,
8202        BrokerID: String,
8203        InvestorID: String,
8204        CommodityGroupID: String,
8205    }
8206    #[derive(Debug, Clone, Default)]
8207    struct QrySPMMInstParamField {
8208        is_null: bool,
8209        InstrumentID: String,
8210    }
8211    #[derive(Debug, Clone, Default)]
8212    struct QrySPMMProductParamField {
8213        is_null: bool,
8214        ProductID: String,
8215    }
8216    #[derive(Debug, Clone, Default)]
8217    struct InvestorCommoditySPMMMarginField {
8218        is_null: bool,
8219        ExchangeID: String,
8220        BrokerID: String,
8221        InvestorID: String,
8222        CommodityID: String,
8223        MarginBeforeDiscount: f64,
8224        MarginNoDiscount: f64,
8225        LongPosRisk: f64,
8226        LongOpenFrozenRisk: f64,
8227        LongCloseFrozenRisk: f64,
8228        ShortPosRisk: f64,
8229        ShortOpenFrozenRisk: f64,
8230        ShortCloseFrozenRisk: f64,
8231        IntraCommodityRate: f64,
8232        OptionDiscountRate: f64,
8233        PosDiscount: f64,
8234        OpenFrozenDiscount: f64,
8235        NetRisk: f64,
8236        CloseFrozenMargin: f64,
8237        FrozenCommission: f64,
8238        Commission: f64,
8239        FrozenCash: f64,
8240        CashIn: f64,
8241        StrikeFrozenMargin: f64,
8242    }
8243    #[derive(Debug, Clone, Default)]
8244    struct InvestorCommodityGroupSPMMMarginField {
8245        is_null: bool,
8246        ExchangeID: String,
8247        BrokerID: String,
8248        InvestorID: String,
8249        CommodityGroupID: String,
8250        MarginBeforeDiscount: f64,
8251        MarginNoDiscount: f64,
8252        LongRisk: f64,
8253        ShortRisk: f64,
8254        CloseFrozenMargin: f64,
8255        InterCommodityRate: f64,
8256        MiniMarginRatio: f64,
8257        AdjustRatio: f64,
8258        IntraCommodityDiscount: f64,
8259        InterCommodityDiscount: f64,
8260        ExchMargin: f64,
8261        InvestorMargin: f64,
8262        FrozenCommission: f64,
8263        Commission: f64,
8264        FrozenCash: f64,
8265        CashIn: f64,
8266        StrikeFrozenMargin: f64,
8267    }
8268    #[derive(Debug, Clone, Default)]
8269    struct SPMMInstParamField {
8270        is_null: bool,
8271        ExchangeID: String,
8272        InstrumentID: String,
8273        InstMarginCalID: u8,
8274        CommodityID: String,
8275        CommodityGroupID: String,
8276    }
8277    #[derive(Debug, Clone, Default)]
8278    struct SPMMProductParamField {
8279        is_null: bool,
8280        ExchangeID: String,
8281        ProductID: String,
8282        CommodityID: String,
8283        CommodityGroupID: String,
8284    }
8285    #[derive(Debug, Clone, Default)]
8286    struct QryTraderAssignField {
8287        is_null: bool,
8288        TraderID: String,
8289    }
8290    #[derive(Debug, Clone, Default)]
8291    struct TraderAssignField {
8292        is_null: bool,
8293        BrokerID: String,
8294        ExchangeID: String,
8295        TraderID: String,
8296        ParticipantID: String,
8297        DRIdentityID: i32,
8298    }
8299    #[derive(Debug, Clone, Default)]
8300    struct InvestorInfoCntSettingField {
8301        is_null: bool,
8302        ExchangeID: String,
8303        BrokerID: String,
8304        InvestorID: String,
8305        ProductID: String,
8306        IsCalInfoComm: i32,
8307        IsLimitInfoMax: i32,
8308        InfoMaxLimit: i32,
8309    }
8310    #[derive(Debug, Clone, Default)]
8311    struct RCAMSCombProductInfoField {
8312        is_null: bool,
8313        TradingDay: String,
8314        ExchangeID: String,
8315        ProductID: String,
8316        CombProductID: String,
8317        ProductGroupID: String,
8318    }
8319    #[derive(Debug, Clone, Default)]
8320    struct RCAMSInstrParameterField {
8321        is_null: bool,
8322        TradingDay: String,
8323        ExchangeID: String,
8324        ProductID: String,
8325        HedgeRate: f64,
8326    }
8327    #[derive(Debug, Clone, Default)]
8328    struct RCAMSIntraParameterField {
8329        is_null: bool,
8330        TradingDay: String,
8331        ExchangeID: String,
8332        CombProductID: String,
8333        HedgeRate: f64,
8334    }
8335    #[derive(Debug, Clone, Default)]
8336    struct RCAMSInterParameterField {
8337        is_null: bool,
8338        TradingDay: String,
8339        ExchangeID: String,
8340        ProductGroupID: String,
8341        Priority: i32,
8342        CreditRate: f64,
8343        CombProduct1: String,
8344        CombProduct2: String,
8345    }
8346    #[derive(Debug, Clone, Default)]
8347    struct RCAMSShortOptAdjustParamField {
8348        is_null: bool,
8349        TradingDay: String,
8350        ExchangeID: String,
8351        CombProductID: String,
8352        HedgeFlag: u8,
8353        AdjustValue: f64,
8354    }
8355    #[derive(Debug, Clone, Default)]
8356    struct RCAMSInvestorCombPositionField {
8357        is_null: bool,
8358        ExchangeID: String,
8359        BrokerID: String,
8360        InvestorID: String,
8361        InstrumentID: String,
8362        HedgeFlag: u8,
8363        PosiDirection: u8,
8364        CombInstrumentID: String,
8365        LegID: i32,
8366        ExchangeInstID: String,
8367        TotalAmt: i32,
8368        ExchMargin: f64,
8369        Margin: f64,
8370    }
8371    #[derive(Debug, Clone, Default)]
8372    struct InvestorProdRCAMSMarginField {
8373        is_null: bool,
8374        ExchangeID: String,
8375        BrokerID: String,
8376        InvestorID: String,
8377        CombProductID: String,
8378        HedgeFlag: u8,
8379        ProductGroupID: String,
8380        RiskBeforeDiscount: f64,
8381        IntraInstrRisk: f64,
8382        BPosRisk: f64,
8383        SPosRisk: f64,
8384        IntraProdRisk: f64,
8385        NetRisk: f64,
8386        InterProdRisk: f64,
8387        ShortOptRiskAdj: f64,
8388        OptionRoyalty: f64,
8389        MMSACloseFrozenMargin: f64,
8390        CloseCombFrozenMargin: f64,
8391        CloseFrozenMargin: f64,
8392        MMSAOpenFrozenMargin: f64,
8393        DeliveryOpenFrozenMargin: f64,
8394        OpenFrozenMargin: f64,
8395        UseFrozenMargin: f64,
8396        MMSAExchMargin: f64,
8397        DeliveryExchMargin: f64,
8398        CombExchMargin: f64,
8399        ExchMargin: f64,
8400        UseMargin: f64,
8401    }
8402    #[derive(Debug, Clone, Default)]
8403    struct QryRCAMSCombProductInfoField {
8404        is_null: bool,
8405        ProductID: String,
8406        CombProductID: String,
8407        ProductGroupID: String,
8408    }
8409    #[derive(Debug, Clone, Default)]
8410    struct QryRCAMSInstrParameterField {
8411        is_null: bool,
8412        ProductID: String,
8413    }
8414    #[derive(Debug, Clone, Default)]
8415    struct QryRCAMSIntraParameterField {
8416        is_null: bool,
8417        CombProductID: String,
8418    }
8419    #[derive(Debug, Clone, Default)]
8420    struct QryRCAMSInterParameterField {
8421        is_null: bool,
8422        ProductGroupID: String,
8423        CombProduct1: String,
8424        CombProduct2: String,
8425    }
8426    #[derive(Debug, Clone, Default)]
8427    struct QryRCAMSShortOptAdjustParamField {
8428        is_null: bool,
8429        CombProductID: String,
8430    }
8431    #[derive(Debug, Clone, Default)]
8432    struct QryRCAMSInvestorCombPositionField {
8433        is_null: bool,
8434        BrokerID: String,
8435        InvestorID: String,
8436        InstrumentID: String,
8437        CombInstrumentID: String,
8438    }
8439    #[derive(Debug, Clone, Default)]
8440    struct QryInvestorProdRCAMSMarginField {
8441        is_null: bool,
8442        BrokerID: String,
8443        InvestorID: String,
8444        CombProductID: String,
8445        ProductGroupID: String,
8446    }
8447    #[derive(Debug, Clone, Default)]
8448    struct RULEInstrParameterField {
8449        is_null: bool,
8450        TradingDay: String,
8451        ExchangeID: String,
8452        InstrumentID: String,
8453        InstrumentClass: u8,
8454        StdInstrumentID: String,
8455        BSpecRatio: f64,
8456        SSpecRatio: f64,
8457        BHedgeRatio: f64,
8458        SHedgeRatio: f64,
8459        BAddOnMargin: f64,
8460        SAddOnMargin: f64,
8461        CommodityGroupID: i32,
8462    }
8463    #[derive(Debug, Clone, Default)]
8464    struct RULEIntraParameterField {
8465        is_null: bool,
8466        TradingDay: String,
8467        ExchangeID: String,
8468        ProdFamilyCode: String,
8469        StdInstrumentID: String,
8470        StdInstrMargin: f64,
8471        UsualIntraRate: f64,
8472        DeliveryIntraRate: f64,
8473    }
8474    #[derive(Debug, Clone, Default)]
8475    struct RULEInterParameterField {
8476        is_null: bool,
8477        TradingDay: String,
8478        ExchangeID: String,
8479        SpreadId: i32,
8480        InterRate: f64,
8481        Leg1ProdFamilyCode: String,
8482        Leg2ProdFamilyCode: String,
8483        Leg1PropFactor: i32,
8484        Leg2PropFactor: i32,
8485        CommodityGroupID: i32,
8486        CommodityGroupName: String,
8487    }
8488    #[derive(Debug, Clone, Default)]
8489    struct QryRULEInstrParameterField {
8490        is_null: bool,
8491        ExchangeID: String,
8492        InstrumentID: String,
8493    }
8494    #[derive(Debug, Clone, Default)]
8495    struct QryRULEIntraParameterField {
8496        is_null: bool,
8497        ExchangeID: String,
8498        ProdFamilyCode: String,
8499    }
8500    #[derive(Debug, Clone, Default)]
8501    struct QryRULEInterParameterField {
8502        is_null: bool,
8503        ExchangeID: String,
8504        Leg1ProdFamilyCode: String,
8505        Leg2ProdFamilyCode: String,
8506        CommodityGroupID: i32,
8507    }
8508    #[derive(Debug, Clone, Default)]
8509    struct InvestorProdRULEMarginField {
8510        is_null: bool,
8511        ExchangeID: String,
8512        BrokerID: String,
8513        InvestorID: String,
8514        ProdFamilyCode: String,
8515        InstrumentClass: u8,
8516        CommodityGroupID: i32,
8517        BStdPosition: f64,
8518        SStdPosition: f64,
8519        BStdOpenFrozen: f64,
8520        SStdOpenFrozen: f64,
8521        BStdCloseFrozen: f64,
8522        SStdCloseFrozen: f64,
8523        IntraProdStdPosition: f64,
8524        NetStdPosition: f64,
8525        InterProdStdPosition: f64,
8526        SingleStdPosition: f64,
8527        IntraProdMargin: f64,
8528        InterProdMargin: f64,
8529        SingleMargin: f64,
8530        NonCombMargin: f64,
8531        AddOnMargin: f64,
8532        ExchMargin: f64,
8533        AddOnFrozenMargin: f64,
8534        OpenFrozenMargin: f64,
8535        CloseFrozenMargin: f64,
8536        Margin: f64,
8537        FrozenMargin: f64,
8538    }
8539    #[derive(Debug, Clone, Default)]
8540    struct QryInvestorProdRULEMarginField {
8541        is_null: bool,
8542        ExchangeID: String,
8543        BrokerID: String,
8544        InvestorID: String,
8545        ProdFamilyCode: String,
8546        CommodityGroupID: i32,
8547    }
8548    #[derive(Debug, Clone, Default)]
8549    struct SyncDeltaSPBMPortfDefinitionField {
8550        is_null: bool,
8551        ExchangeID: String,
8552        PortfolioDefID: i32,
8553        ProdFamilyCode: String,
8554        IsSPBM: i32,
8555        ActionDirection: u8,
8556        SyncDeltaSequenceNo: i32,
8557    }
8558    #[derive(Debug, Clone, Default)]
8559    struct SyncDeltaSPBMInvstPortfDefField {
8560        is_null: bool,
8561        ExchangeID: String,
8562        BrokerID: String,
8563        InvestorID: String,
8564        PortfolioDefID: i32,
8565        ActionDirection: u8,
8566        SyncDeltaSequenceNo: i32,
8567    }
8568    #[derive(Debug, Clone, Default)]
8569    struct SyncDeltaSPBMFutureParameterField {
8570        is_null: bool,
8571        TradingDay: String,
8572        ExchangeID: String,
8573        InstrumentID: String,
8574        ProdFamilyCode: String,
8575        Cvf: i32,
8576        TimeRange: u8,
8577        MarginRate: f64,
8578        LockRateX: f64,
8579        AddOnRate: f64,
8580        PreSettlementPrice: f64,
8581        AddOnLockRateX2: f64,
8582        ActionDirection: u8,
8583        SyncDeltaSequenceNo: i32,
8584    }
8585    #[derive(Debug, Clone, Default)]
8586    struct SyncDeltaSPBMOptionParameterField {
8587        is_null: bool,
8588        TradingDay: String,
8589        ExchangeID: String,
8590        InstrumentID: String,
8591        ProdFamilyCode: String,
8592        Cvf: i32,
8593        DownPrice: f64,
8594        Delta: f64,
8595        SlimiDelta: f64,
8596        PreSettlementPrice: f64,
8597        ActionDirection: u8,
8598        SyncDeltaSequenceNo: i32,
8599    }
8600    #[derive(Debug, Clone, Default)]
8601    struct SyncDeltaSPBMIntraParameterField {
8602        is_null: bool,
8603        TradingDay: String,
8604        ExchangeID: String,
8605        ProdFamilyCode: String,
8606        IntraRateY: f64,
8607        AddOnIntraRateY2: f64,
8608        ActionDirection: u8,
8609        SyncDeltaSequenceNo: i32,
8610    }
8611    #[derive(Debug, Clone, Default)]
8612    struct SyncDeltaSPBMInterParameterField {
8613        is_null: bool,
8614        TradingDay: String,
8615        ExchangeID: String,
8616        SpreadId: i32,
8617        InterRateZ: f64,
8618        Leg1ProdFamilyCode: String,
8619        Leg2ProdFamilyCode: String,
8620        ActionDirection: u8,
8621        SyncDeltaSequenceNo: i32,
8622    }
8623    #[derive(Debug, Clone, Default)]
8624    struct SyncDeltaSPBMAddOnInterParamField {
8625        is_null: bool,
8626        TradingDay: String,
8627        ExchangeID: String,
8628        SpreadId: i32,
8629        AddOnInterRateZ2: f64,
8630        Leg1ProdFamilyCode: String,
8631        Leg2ProdFamilyCode: String,
8632        ActionDirection: u8,
8633        SyncDeltaSequenceNo: i32,
8634    }
8635    #[derive(Debug, Clone, Default)]
8636    struct SyncDeltaSPMMInstParamField {
8637        is_null: bool,
8638        ExchangeID: String,
8639        InstrumentID: String,
8640        InstMarginCalID: u8,
8641        CommodityID: String,
8642        CommodityGroupID: String,
8643        ActionDirection: u8,
8644        SyncDeltaSequenceNo: i32,
8645    }
8646    #[derive(Debug, Clone, Default)]
8647    struct SyncDeltaSPMMProductParamField {
8648        is_null: bool,
8649        ExchangeID: String,
8650        ProductID: String,
8651        CommodityID: String,
8652        CommodityGroupID: String,
8653        ActionDirection: u8,
8654        SyncDeltaSequenceNo: i32,
8655    }
8656    #[derive(Debug, Clone, Default)]
8657    struct SyncDeltaInvestorSPMMModelField {
8658        is_null: bool,
8659        ExchangeID: String,
8660        BrokerID: String,
8661        InvestorID: String,
8662        SPMMModelID: String,
8663        ActionDirection: u8,
8664        SyncDeltaSequenceNo: i32,
8665    }
8666    #[derive(Debug, Clone, Default)]
8667    struct SyncDeltaSPMMModelParamField {
8668        is_null: bool,
8669        ExchangeID: String,
8670        SPMMModelID: String,
8671        CommodityGroupID: String,
8672        IntraCommodityRate: f64,
8673        InterCommodityRate: f64,
8674        OptionDiscountRate: f64,
8675        MiniMarginRatio: f64,
8676        ActionDirection: u8,
8677        SyncDeltaSequenceNo: i32,
8678    }
8679    #[derive(Debug, Clone, Default)]
8680    struct SyncDeltaRCAMSCombProdInfoField {
8681        is_null: bool,
8682        TradingDay: String,
8683        ExchangeID: String,
8684        ProductID: String,
8685        CombProductID: String,
8686        ProductGroupID: String,
8687        ActionDirection: u8,
8688        SyncDeltaSequenceNo: i32,
8689    }
8690    #[derive(Debug, Clone, Default)]
8691    struct SyncDeltaRCAMSInstrParameterField {
8692        is_null: bool,
8693        TradingDay: String,
8694        ExchangeID: String,
8695        ProductID: String,
8696        HedgeRate: f64,
8697        ActionDirection: u8,
8698        SyncDeltaSequenceNo: i32,
8699    }
8700    #[derive(Debug, Clone, Default)]
8701    struct SyncDeltaRCAMSIntraParameterField {
8702        is_null: bool,
8703        TradingDay: String,
8704        ExchangeID: String,
8705        CombProductID: String,
8706        HedgeRate: f64,
8707        ActionDirection: u8,
8708        SyncDeltaSequenceNo: i32,
8709    }
8710    #[derive(Debug, Clone, Default)]
8711    struct SyncDeltaRCAMSInterParameterField {
8712        is_null: bool,
8713        TradingDay: String,
8714        ExchangeID: String,
8715        ProductGroupID: String,
8716        Priority: i32,
8717        CreditRate: f64,
8718        CombProduct1: String,
8719        CombProduct2: String,
8720        ActionDirection: u8,
8721        SyncDeltaSequenceNo: i32,
8722    }
8723    #[derive(Debug, Clone, Default)]
8724    struct SyncDeltaRCAMSSOptAdjParamField {
8725        is_null: bool,
8726        TradingDay: String,
8727        ExchangeID: String,
8728        CombProductID: String,
8729        HedgeFlag: u8,
8730        AdjustValue: f64,
8731        ActionDirection: u8,
8732        SyncDeltaSequenceNo: i32,
8733    }
8734    #[derive(Debug, Clone, Default)]
8735    struct SyncDeltaRCAMSCombRuleDtlField {
8736        is_null: bool,
8737        TradingDay: String,
8738        ExchangeID: String,
8739        ProdGroup: Vec<u8>,
8740        RuleId: Vec<u8>,
8741        Priority: i32,
8742        HedgeFlag: u8,
8743        CombMargin: f64,
8744        ExchangeInstID: String,
8745        LegID: i32,
8746        LegInstrumentID: String,
8747        Direction: u8,
8748        LegMultiple: i32,
8749        ActionDirection: u8,
8750        SyncDeltaSequenceNo: i32,
8751    }
8752    #[derive(Debug, Clone, Default)]
8753    struct SyncDeltaRCAMSInvstCombPosField {
8754        is_null: bool,
8755        ExchangeID: String,
8756        BrokerID: String,
8757        InvestorID: String,
8758        InstrumentID: String,
8759        HedgeFlag: u8,
8760        PosiDirection: u8,
8761        CombInstrumentID: String,
8762        LegID: i32,
8763        ExchangeInstID: String,
8764        TotalAmt: i32,
8765        ExchMargin: f64,
8766        Margin: f64,
8767        ActionDirection: u8,
8768        SyncDeltaSequenceNo: i32,
8769    }
8770    #[derive(Debug, Clone, Default)]
8771    struct SyncDeltaRULEInstrParameterField {
8772        is_null: bool,
8773        TradingDay: String,
8774        ExchangeID: String,
8775        InstrumentID: String,
8776        InstrumentClass: u8,
8777        StdInstrumentID: String,
8778        BSpecRatio: f64,
8779        SSpecRatio: f64,
8780        BHedgeRatio: f64,
8781        SHedgeRatio: f64,
8782        BAddOnMargin: f64,
8783        SAddOnMargin: f64,
8784        CommodityGroupID: i32,
8785        ActionDirection: u8,
8786        SyncDeltaSequenceNo: i32,
8787    }
8788    #[derive(Debug, Clone, Default)]
8789    struct SyncDeltaRULEIntraParameterField {
8790        is_null: bool,
8791        TradingDay: String,
8792        ExchangeID: String,
8793        ProdFamilyCode: String,
8794        StdInstrumentID: String,
8795        StdInstrMargin: f64,
8796        UsualIntraRate: f64,
8797        DeliveryIntraRate: f64,
8798        ActionDirection: u8,
8799        SyncDeltaSequenceNo: i32,
8800    }
8801    #[derive(Debug, Clone, Default)]
8802    struct SyncDeltaRULEInterParameterField {
8803        is_null: bool,
8804        TradingDay: String,
8805        ExchangeID: String,
8806        SpreadId: i32,
8807        InterRate: f64,
8808        Leg1ProdFamilyCode: String,
8809        Leg2ProdFamilyCode: String,
8810        Leg1PropFactor: i32,
8811        Leg2PropFactor: i32,
8812        CommodityGroupID: i32,
8813        CommodityGroupName: String,
8814        ActionDirection: u8,
8815        SyncDeltaSequenceNo: i32,
8816    }
8817    #[derive(Debug, Clone, Default)]
8818    struct IpAddrParamField {
8819        is_null: bool,
8820        BrokerID: String,
8821        Address: String,
8822        DRIdentityID: i32,
8823        DRIdentityName: String,
8824        AddrSrvMode: u8,
8825        AddrVer: u8,
8826        AddrNo: i32,
8827        AddrName: String,
8828        IsSM: i32,
8829        IsLocalAddr: i32,
8830        Remark: String,
8831        Site: Vec<u8>,
8832        NetOperator: Vec<u8>,
8833    }
8834    #[derive(Debug, Clone, Default)]
8835    struct QryIpAddrParamField {
8836        is_null: bool,
8837        BrokerID: String,
8838    }
8839    #[derive(Debug, Clone, Default)]
8840    struct TGIpAddrParamField {
8841        is_null: bool,
8842        BrokerID: String,
8843        UserID: String,
8844        Address: String,
8845        DRIdentityID: i32,
8846        DRIdentityName: String,
8847        AddrSrvMode: u8,
8848        AddrVer: u8,
8849        AddrNo: i32,
8850        AddrName: String,
8851        IsSM: i32,
8852        IsLocalAddr: i32,
8853        Remark: String,
8854        Site: Vec<u8>,
8855        NetOperator: Vec<u8>,
8856    }
8857    #[derive(Debug, Clone, Default)]
8858    struct QryTGIpAddrParamField {
8859        is_null: bool,
8860        BrokerID: String,
8861        UserID: String,
8862        AppID: String,
8863    }
8864    #[derive(Debug, Clone, Default)]
8865    struct TGSessionQryStatusField {
8866        is_null: bool,
8867        LastQryFreq: i32,
8868        QryStatus: u8,
8869    }
8870    #[derive(Debug, Clone, Default)]
8871    struct LocalAddrConfigField {
8872        is_null: bool,
8873        BrokerID: String,
8874        PeerAddr: String,
8875        NetMask: Vec<u8>,
8876        DRIdentityID: i32,
8877        LocalAddress: String,
8878    }
8879    #[derive(Debug, Clone, Default)]
8880    struct QryLocalAddrConfigField {
8881        is_null: bool,
8882        BrokerID: String,
8883    }
8884    #[derive(Debug, Clone, Default)]
8885    struct ReqQueryBankAccountBySecField {
8886        is_null: bool,
8887        TradeCode: String,
8888        BankID: String,
8889        BankBranchID: String,
8890        BrokerID: String,
8891        BrokerBranchID: String,
8892        TradeDate: String,
8893        TradeTime: String,
8894        BankSerial: String,
8895        TradingDay: String,
8896        PlateSerial: i32,
8897        LastFragment: u8,
8898        SessionID: i32,
8899        CustomerName: String,
8900        IdCardType: u8,
8901        IdentifiedCardNo: String,
8902        CustType: u8,
8903        BankAccount: String,
8904        BankPassWord: String,
8905        AccountID: String,
8906        Password: String,
8907        FutureSerial: i32,
8908        InstallID: i32,
8909        UserID: String,
8910        VerifyCertNoFlag: u8,
8911        CurrencyID: String,
8912        Digest: Vec<u8>,
8913        BankAccType: u8,
8914        DeviceID: String,
8915        BankSecuAccType: u8,
8916        BrokerIDByBank: Vec<u8>,
8917        BankSecuAcc: Vec<u8>,
8918        BankPwdFlag: u8,
8919        SecuPwdFlag: u8,
8920        OperNo: String,
8921        RequestID: i32,
8922        TID: i32,
8923        LongCustomerName: String,
8924        DRIdentityID: i32,
8925        SecFutureSerial: i32,
8926    }
8927    #[derive(Debug, Clone, Default)]
8928    struct RspQueryBankAccountBySecField {
8929        is_null: bool,
8930        TradeCode: String,
8931        BankID: String,
8932        BankBranchID: String,
8933        BrokerID: String,
8934        BrokerBranchID: String,
8935        TradeDate: String,
8936        TradeTime: String,
8937        BankSerial: String,
8938        TradingDay: String,
8939        PlateSerial: i32,
8940        LastFragment: u8,
8941        SessionID: i32,
8942        CustomerName: String,
8943        IdCardType: u8,
8944        IdentifiedCardNo: String,
8945        CustType: u8,
8946        BankAccount: String,
8947        BankPassWord: String,
8948        AccountID: String,
8949        Password: String,
8950        FutureSerial: i32,
8951        InstallID: i32,
8952        UserID: String,
8953        VerifyCertNoFlag: u8,
8954        CurrencyID: String,
8955        Digest: Vec<u8>,
8956        BankAccType: u8,
8957        DeviceID: String,
8958        BankSecuAccType: u8,
8959        BrokerIDByBank: Vec<u8>,
8960        BankSecuAcc: Vec<u8>,
8961        BankPwdFlag: u8,
8962        SecuPwdFlag: u8,
8963        OperNo: String,
8964        RequestID: i32,
8965        TID: i32,
8966        BankUseAmount: f64,
8967        BankFetchAmount: f64,
8968        LongCustomerName: String,
8969        DRIdentityID: i32,
8970        SecFutureSerial: i32,
8971    }
8972    #[derive(Debug, Clone, Default)]
8973    struct ReqTransferBySecField {
8974        is_null: bool,
8975        TradeCode: String,
8976        BankID: String,
8977        BankBranchID: String,
8978        BrokerID: String,
8979        BrokerBranchID: String,
8980        TradeDate: String,
8981        TradeTime: String,
8982        BankSerial: String,
8983        TradingDay: String,
8984        PlateSerial: i32,
8985        LastFragment: u8,
8986        SessionID: i32,
8987        CustomerName: String,
8988        IdCardType: u8,
8989        IdentifiedCardNo: String,
8990        CustType: u8,
8991        BankAccount: String,
8992        BankPassWord: String,
8993        AccountID: String,
8994        Password: String,
8995        InstallID: i32,
8996        FutureSerial: i32,
8997        UserID: String,
8998        VerifyCertNoFlag: u8,
8999        CurrencyID: String,
9000        TradeAmount: f64,
9001        FutureFetchAmount: f64,
9002        FeePayFlag: u8,
9003        CustFee: f64,
9004        BrokerFee: f64,
9005        Message: Vec<u8>,
9006        Digest: Vec<u8>,
9007        BankAccType: u8,
9008        DeviceID: String,
9009        BankSecuAccType: u8,
9010        BrokerIDByBank: Vec<u8>,
9011        BankSecuAcc: Vec<u8>,
9012        BankPwdFlag: u8,
9013        SecuPwdFlag: u8,
9014        OperNo: String,
9015        RequestID: i32,
9016        TID: i32,
9017        TransferStatus: u8,
9018        LongCustomerName: String,
9019        DRIdentityID: i32,
9020        SecFutureSerial: i32,
9021    }
9022    #[derive(Debug, Clone, Default)]
9023    struct RspTransferBySecField {
9024        is_null: bool,
9025        TradeCode: String,
9026        BankID: String,
9027        BankBranchID: String,
9028        BrokerID: String,
9029        BrokerBranchID: String,
9030        TradeDate: String,
9031        TradeTime: String,
9032        BankSerial: String,
9033        TradingDay: String,
9034        PlateSerial: i32,
9035        LastFragment: u8,
9036        SessionID: i32,
9037        CustomerName: String,
9038        IdCardType: u8,
9039        IdentifiedCardNo: String,
9040        CustType: u8,
9041        BankAccount: String,
9042        BankPassWord: String,
9043        AccountID: String,
9044        Password: String,
9045        InstallID: i32,
9046        FutureSerial: i32,
9047        UserID: String,
9048        VerifyCertNoFlag: u8,
9049        CurrencyID: String,
9050        TradeAmount: f64,
9051        FutureFetchAmount: f64,
9052        FeePayFlag: u8,
9053        CustFee: f64,
9054        BrokerFee: f64,
9055        Message: Vec<u8>,
9056        Digest: Vec<u8>,
9057        BankAccType: u8,
9058        DeviceID: String,
9059        BankSecuAccType: u8,
9060        BrokerIDByBank: Vec<u8>,
9061        BankSecuAcc: Vec<u8>,
9062        BankPwdFlag: u8,
9063        SecuPwdFlag: u8,
9064        OperNo: String,
9065        RequestID: i32,
9066        TID: i32,
9067        TransferStatus: u8,
9068        ErrorID: i32,
9069        ErrorMsg: String,
9070        LongCustomerName: String,
9071        DRIdentityID: i32,
9072        SecFutureSerial: i32,
9073    }
9074    #[derive(Debug, Clone, Default)]
9075    struct NotifyQueryFutureAccountBySecField {
9076        is_null: bool,
9077        TradeCode: String,
9078        BankID: String,
9079        BankBranchID: String,
9080        BrokerID: String,
9081        BrokerBranchID: String,
9082        TradeDate: String,
9083        TradeTime: String,
9084        BankSerial: String,
9085        TradingDay: String,
9086        PlateSerial: i32,
9087        LastFragment: u8,
9088        SessionID: i32,
9089        CustomerName: String,
9090        IdCardType: u8,
9091        IdentifiedCardNo: String,
9092        CustType: u8,
9093        BankAccount: String,
9094        BankPassWord: String,
9095        AccountID: String,
9096        Password: String,
9097        FutureSerial: i32,
9098        InstallID: i32,
9099        UserID: String,
9100        VerifyCertNoFlag: u8,
9101        CurrencyID: String,
9102        Digest: Vec<u8>,
9103        BankAccType: u8,
9104        DeviceID: String,
9105        BankSecuAccType: u8,
9106        BrokerIDByBank: Vec<u8>,
9107        BankSecuAcc: Vec<u8>,
9108        BankPwdFlag: u8,
9109        SecuPwdFlag: u8,
9110        OperNo: String,
9111        RequestID: i32,
9112        TID: i32,
9113        BankUseAmount: f64,
9114        BankFetchAmount: f64,
9115        ErrorID: i32,
9116        ErrorMsg: String,
9117        LongCustomerName: String,
9118        DRIdentityID: i32,
9119        SecFutureSerial: i32,
9120    }
9121    #[derive(Debug, Clone, Default)]
9122    struct ExitEmergencyField {
9123        is_null: bool,
9124        BrokerID: String,
9125    }
9126    #[derive(Debug, Clone, Default)]
9127    struct InvestorPortfMarginModelField {
9128        is_null: bool,
9129        BrokerID: String,
9130        InvestorID: String,
9131        MarginModelID: String,
9132    }
9133    #[derive(Debug, Clone, Default)]
9134    struct InvestorPortfSettingField {
9135        is_null: bool,
9136        ExchangeID: String,
9137        BrokerID: String,
9138        InvestorID: String,
9139        HedgeFlag: u8,
9140        UsePortf: i32,
9141    }
9142    #[derive(Debug, Clone, Default)]
9143    struct QryInvestorPortfSettingField {
9144        is_null: bool,
9145        ExchangeID: String,
9146        BrokerID: String,
9147        InvestorID: String,
9148    }
9149    #[derive(Debug, Clone, Default)]
9150    struct UserPasswordUpdateFromSecField {
9151        is_null: bool,
9152        BrokerID: String,
9153        UserID: String,
9154        OldPassword: String,
9155        NewPassword: String,
9156        FromSec: i32,
9157    }
9158    #[derive(Debug, Clone, Default)]
9159    struct SettlementInfoConfirmFromSecField {
9160        is_null: bool,
9161        BrokerID: String,
9162        InvestorID: String,
9163        ConfirmDate: String,
9164        ConfirmTime: String,
9165        FromSec: i32,
9166    }
9167    #[derive(Debug, Clone, Default)]
9168    struct TradingAccountPasswordUpdateFromSecField {
9169        is_null: bool,
9170        BrokerID: String,
9171        AccountID: String,
9172        OldPassword: String,
9173        NewPassword: String,
9174        CurrencyID: String,
9175        FromSec: i32,
9176    }
9177    #[derive(Debug, Clone, Default)]
9178    struct RiskForbiddenRightField {
9179        is_null: bool,
9180        BrokerID: String,
9181        InvestorID: String,
9182        InstrumentID: String,
9183        UserID: String,
9184    }
9185    #[derive(Debug, Clone, Default)]
9186    struct InvestorInfoCommRecField {
9187        is_null: bool,
9188        ExchangeID: String,
9189        BrokerID: String,
9190        InvestorID: String,
9191        InstrumentID: String,
9192        OrderCount: i32,
9193        OrderActionCount: i32,
9194        ForQuoteCnt: i32,
9195        InfoComm: f64,
9196        IsOptSeries: i32,
9197        ProductID: String,
9198        InfoCnt: i32,
9199    }
9200    #[derive(Debug, Clone, Default)]
9201    struct QryInvestorInfoCommRecField {
9202        is_null: bool,
9203        InvestorID: String,
9204        InstrumentID: String,
9205        BrokerID: String,
9206    }
9207    #[derive(Debug, Clone, Default)]
9208    struct CombLegField {
9209        is_null: bool,
9210        CombInstrumentID: String,
9211        LegID: i32,
9212        LegInstrumentID: String,
9213        Direction: u8,
9214        LegMultiple: i32,
9215        ImplyLevel: i32,
9216    }
9217    #[derive(Debug, Clone, Default)]
9218    struct QryCombLegField {
9219        is_null: bool,
9220        LegInstrumentID: String,
9221    }
9222    #[derive(Debug, Clone, Default)]
9223    struct InputOffsetSettingField {
9224        is_null: bool,
9225        BrokerID: String,
9226        InvestorID: String,
9227        InstrumentID: String,
9228        UnderlyingInstrID: String,
9229        ProductID: String,
9230        OffsetType: u8,
9231        Volume: i32,
9232        IsOffset: i32,
9233        RequestID: i32,
9234        UserID: String,
9235        ExchangeID: String,
9236        IPAddress: String,
9237        MacAddress: String,
9238    }
9239    #[derive(Debug, Clone, Default)]
9240    struct OffsetSettingField {
9241        is_null: bool,
9242        BrokerID: String,
9243        InvestorID: String,
9244        InstrumentID: String,
9245        UnderlyingInstrID: String,
9246        ProductID: String,
9247        OffsetType: u8,
9248        Volume: i32,
9249        IsOffset: i32,
9250        RequestID: i32,
9251        UserID: String,
9252        ExchangeID: String,
9253        IPAddress: String,
9254        MacAddress: String,
9255        ExchangeInstID: String,
9256        ExchangeSerialNo: Vec<u8>,
9257        ExchangeProductID: String,
9258        ParticipantID: String,
9259        ClientID: String,
9260        TraderID: String,
9261        InstallID: i32,
9262        OrderSubmitStatus: u8,
9263        TradingDay: String,
9264        SettlementID: i32,
9265        InsertDate: String,
9266        InsertTime: String,
9267        CancelTime: String,
9268        ExecResult: u8,
9269        SequenceNo: i32,
9270        FrontID: i32,
9271        SessionID: i32,
9272        StatusMsg: String,
9273        ActiveUserID: String,
9274        BrokerOffsetSettingSeq: i32,
9275        ApplySrc: u8,
9276    }
9277    #[derive(Debug, Clone, Default)]
9278    struct CancelOffsetSettingField {
9279        is_null: bool,
9280        BrokerID: String,
9281        InvestorID: String,
9282        InstrumentID: String,
9283        UnderlyingInstrID: String,
9284        ProductID: String,
9285        OffsetType: u8,
9286        Volume: i32,
9287        IsOffset: i32,
9288        RequestID: i32,
9289        UserID: String,
9290        ExchangeID: String,
9291        IPAddress: String,
9292        MacAddress: String,
9293        ExchangeInstID: String,
9294        ExchangeSerialNo: Vec<u8>,
9295        ExchangeProductID: String,
9296        TraderID: String,
9297        InstallID: i32,
9298        ParticipantID: String,
9299        ClientID: String,
9300        OrderActionStatus: u8,
9301        StatusMsg: String,
9302        ActionLocalID: String,
9303        ActionDate: String,
9304        ActionTime: String,
9305    }
9306    #[derive(Debug, Clone, Default)]
9307    struct QryOffsetSettingField {
9308        is_null: bool,
9309        BrokerID: String,
9310        InvestorID: String,
9311        ProductID: String,
9312        OffsetType: u8,
9313    }
9314    #[derive(Debug, Clone, Default)]
9315    struct AddrAppIDRelationField {
9316        is_null: bool,
9317        BrokerID: String,
9318        Address: String,
9319        DRIdentityID: i32,
9320        AppID: String,
9321    }
9322    #[derive(Debug, Clone, Default)]
9323    struct QryAddrAppIDRelationField {
9324        is_null: bool,
9325        BrokerID: String,
9326    }
9327    #[derive(Debug, Clone, Default)]
9328    struct WechatUserSystemInfoField {
9329        is_null: bool,
9330        BrokerID: String,
9331        UserID: String,
9332        WechatCltSysInfoLen: i32,
9333        WechatCltSysInfo: String,
9334        ClientIPPort: i32,
9335        ClientLoginTime: String,
9336        ClientAppID: String,
9337        ClientPublicIP: String,
9338        ClientLoginRemark: String,
9339    }
9340    #[derive(Debug, Clone, Default)]
9341    struct InvestorReserveInfoField {
9342        is_null: bool,
9343        BrokerID: String,
9344        UserID: String,
9345        ReserveInfo: String,
9346    }
9347    #[derive(Debug, Clone, Default)]
9348    struct QryInvestorDepartmentFlatField {
9349        is_null: bool,
9350        BrokerID: String,
9351    }
9352    #[derive(Debug, Clone, Default)]
9353    struct InvestorDepartmentFlatField {
9354        is_null: bool,
9355        BrokerID: String,
9356        InvestorID: String,
9357        DepartmentID: String,
9358    }
9359    #[derive(Debug, Clone, Default)]
9360    struct QryDepartmentUserField {
9361        is_null: bool,
9362        BrokerID: String,
9363    }
9364    #[derive(Debug, Clone, Default)]
9365    struct FrontInfoField {
9366        is_null: bool,
9367        FrontAddr: String,
9368        QryFreq: i32,
9369        FTDPkgFreq: i32,
9370    }
9371}