Skip to main content

fixer_fix/fix40/
order_cancel_request.rs

1// Code generated by fixer-gen. DO NOT EDIT.
2#![allow(clippy::new_without_default)]
3#![allow(clippy::needless_pass_by_value)]
4#![allow(clippy::too_many_arguments)]
5#![allow(unused_imports)]
6
7use fixer::message::Message;
8use fixer::fix_string::FIXString;
9use fixer::errors::MessageRejectErrorEnum;
10use fixer::session::session_id::SessionID;
11
12use rust_decimal::Decimal;
13
14
15use crate::field;
16use crate::tag;
17
18/// `OrderCancelRequest` is the `fix40` `OrderCancelRequest` type, `MsgType` = F.
19pub struct OrderCancelRequest {
20    pub message: Message,
21}
22
23impl OrderCancelRequest {
24    /// Creates a new `OrderCancelRequest` with required fields.
25    pub fn new(orig_cl_ord_id: field::OrigClOrdIDField, cl_ord_id: field::ClOrdIDField, cxl_type: field::CxlTypeField, symbol: field::SymbolField, side: field::SideField, order_qty: field::OrderQtyField) -> Self {
26        let mut msg = Message::new();
27        msg.header.set_field(tag::MSG_TYPE, FIXString::from("F".to_string()));
28
29        msg.body.set_field(tag::ORIG_CL_ORD_ID, orig_cl_ord_id.0);
30
31        msg.body.set_field(tag::CL_ORD_ID, cl_ord_id.0);
32
33        msg.body.set_field(tag::CXL_TYPE, cxl_type.0);
34
35        msg.body.set_field(tag::SYMBOL, symbol.0);
36
37        msg.body.set_field(tag::SIDE, side.0);
38
39        msg.body.set_field(tag::ORDER_QTY, order_qty.0);
40
41        Self { message: msg }
42    }
43
44    /// Creates a `OrderCancelRequest` from an existing `Message`.
45    pub fn from_message(msg: Message) -> Self {
46        Self { message: msg }
47    }
48
49    /// Returns the underlying `Message`.
50    pub fn to_message(self) -> Message {
51        self.message
52    }
53
54
55
56
57    /// Sets `ClOrdID`, Tag 11.
58    pub fn set_cl_ord_id(&mut self, v: String) {
59        self.message.body.set_field(tag::CL_ORD_ID, FIXString::from(v));
60    }
61
62    /// Gets `ClOrdID`, Tag 11.
63    pub fn get_cl_ord_id(&self) -> Result<String, MessageRejectErrorEnum> {
64        let mut fld = field::ClOrdIDField::new(String::new());
65        self.message.body.get_field(tag::CL_ORD_ID, &mut fld.0)?;
66        Ok(fld.value().to_string())
67    }
68
69
70    /// Returns true if `ClOrdID` is present, Tag 11.
71    pub fn has_cl_ord_id(&self) -> bool {
72        self.message.body.has(tag::CL_ORD_ID)
73    }
74
75
76
77
78    /// Sets `ClientID`, Tag 109.
79    pub fn set_client_id(&mut self, v: String) {
80        self.message.body.set_field(tag::CLIENT_ID, FIXString::from(v));
81    }
82
83    /// Gets `ClientID`, Tag 109.
84    pub fn get_client_id(&self) -> Result<String, MessageRejectErrorEnum> {
85        let mut fld = field::ClientIDField::new(String::new());
86        self.message.body.get_field(tag::CLIENT_ID, &mut fld.0)?;
87        Ok(fld.value().to_string())
88    }
89
90
91    /// Returns true if `ClientID` is present, Tag 109.
92    pub fn has_client_id(&self) -> bool {
93        self.message.body.has(tag::CLIENT_ID)
94    }
95
96
97
98
99    /// Sets `CxlType`, Tag 125.
100    pub fn set_cxl_type(&mut self, v: String) {
101        self.message.body.set_field(tag::CXL_TYPE, FIXString::from(v));
102    }
103
104    /// Gets `CxlType`, Tag 125.
105    pub fn get_cxl_type(&self) -> Result<String, MessageRejectErrorEnum> {
106        let mut fld = field::CxlTypeField::new(String::new());
107        self.message.body.get_field(tag::CXL_TYPE, &mut fld.0)?;
108        Ok(fld.value().to_string())
109    }
110
111
112    /// Returns true if `CxlType` is present, Tag 125.
113    pub fn has_cxl_type(&self) -> bool {
114        self.message.body.has(tag::CXL_TYPE)
115    }
116
117
118
119
120    /// Sets `ExecBroker`, Tag 76.
121    pub fn set_exec_broker(&mut self, v: String) {
122        self.message.body.set_field(tag::EXEC_BROKER, FIXString::from(v));
123    }
124
125    /// Gets `ExecBroker`, Tag 76.
126    pub fn get_exec_broker(&self) -> Result<String, MessageRejectErrorEnum> {
127        let mut fld = field::ExecBrokerField::new(String::new());
128        self.message.body.get_field(tag::EXEC_BROKER, &mut fld.0)?;
129        Ok(fld.value().to_string())
130    }
131
132
133    /// Returns true if `ExecBroker` is present, Tag 76.
134    pub fn has_exec_broker(&self) -> bool {
135        self.message.body.has(tag::EXEC_BROKER)
136    }
137
138
139
140
141    /// Sets `IDSource`, Tag 22.
142    pub fn set_id_source(&mut self, v: String) {
143        self.message.body.set_field(tag::ID_SOURCE, FIXString::from(v));
144    }
145
146    /// Gets `IDSource`, Tag 22.
147    pub fn get_id_source(&self) -> Result<String, MessageRejectErrorEnum> {
148        let mut fld = field::IDSourceField::new(String::new());
149        self.message.body.get_field(tag::ID_SOURCE, &mut fld.0)?;
150        Ok(fld.value().to_string())
151    }
152
153
154    /// Returns true if `IDSource` is present, Tag 22.
155    pub fn has_id_source(&self) -> bool {
156        self.message.body.has(tag::ID_SOURCE)
157    }
158
159
160
161
162    /// Sets `Issuer`, Tag 106.
163    pub fn set_issuer(&mut self, v: String) {
164        self.message.body.set_field(tag::ISSUER, FIXString::from(v));
165    }
166
167    /// Gets `Issuer`, Tag 106.
168    pub fn get_issuer(&self) -> Result<String, MessageRejectErrorEnum> {
169        let mut fld = field::IssuerField::new(String::new());
170        self.message.body.get_field(tag::ISSUER, &mut fld.0)?;
171        Ok(fld.value().to_string())
172    }
173
174
175    /// Returns true if `Issuer` is present, Tag 106.
176    pub fn has_issuer(&self) -> bool {
177        self.message.body.has(tag::ISSUER)
178    }
179
180
181
182
183    /// Sets `ListID`, Tag 66.
184    pub fn set_list_id(&mut self, v: String) {
185        self.message.body.set_field(tag::LIST_ID, FIXString::from(v));
186    }
187
188    /// Gets `ListID`, Tag 66.
189    pub fn get_list_id(&self) -> Result<String, MessageRejectErrorEnum> {
190        let mut fld = field::ListIDField::new(String::new());
191        self.message.body.get_field(tag::LIST_ID, &mut fld.0)?;
192        Ok(fld.value().to_string())
193    }
194
195
196    /// Returns true if `ListID` is present, Tag 66.
197    pub fn has_list_id(&self) -> bool {
198        self.message.body.has(tag::LIST_ID)
199    }
200
201
202
203
204    /// Sets `OrderID`, Tag 37.
205    pub fn set_order_id(&mut self, v: String) {
206        self.message.body.set_field(tag::ORDER_ID, FIXString::from(v));
207    }
208
209    /// Gets `OrderID`, Tag 37.
210    pub fn get_order_id(&self) -> Result<String, MessageRejectErrorEnum> {
211        let mut fld = field::OrderIDField::new(String::new());
212        self.message.body.get_field(tag::ORDER_ID, &mut fld.0)?;
213        Ok(fld.value().to_string())
214    }
215
216
217    /// Returns true if `OrderID` is present, Tag 37.
218    pub fn has_order_id(&self) -> bool {
219        self.message.body.has(tag::ORDER_ID)
220    }
221
222
223
224
225    /// Sets `OrderQty`, Tag 38.
226    pub fn set_order_qty(&mut self, val: Decimal, scale: i32) {
227        self.message.body.set_field(tag::ORDER_QTY, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
228    }
229
230    /// Gets `OrderQty`, Tag 38.
231    pub fn get_order_qty(&self) -> Result<Decimal, MessageRejectErrorEnum> {
232        let mut fld = field::OrderQtyField::new(Decimal::ZERO, 0);
233        self.message.body.get_field(tag::ORDER_QTY, &mut fld.0)?;
234        Ok(fld.value())
235    }
236
237
238    /// Returns true if `OrderQty` is present, Tag 38.
239    pub fn has_order_qty(&self) -> bool {
240        self.message.body.has(tag::ORDER_QTY)
241    }
242
243
244
245
246    /// Sets `OrigClOrdID`, Tag 41.
247    pub fn set_orig_cl_ord_id(&mut self, v: String) {
248        self.message.body.set_field(tag::ORIG_CL_ORD_ID, FIXString::from(v));
249    }
250
251    /// Gets `OrigClOrdID`, Tag 41.
252    pub fn get_orig_cl_ord_id(&self) -> Result<String, MessageRejectErrorEnum> {
253        let mut fld = field::OrigClOrdIDField::new(String::new());
254        self.message.body.get_field(tag::ORIG_CL_ORD_ID, &mut fld.0)?;
255        Ok(fld.value().to_string())
256    }
257
258
259    /// Returns true if `OrigClOrdID` is present, Tag 41.
260    pub fn has_orig_cl_ord_id(&self) -> bool {
261        self.message.body.has(tag::ORIG_CL_ORD_ID)
262    }
263
264
265
266
267    /// Sets `SecurityDesc`, Tag 107.
268    pub fn set_security_desc(&mut self, v: String) {
269        self.message.body.set_field(tag::SECURITY_DESC, FIXString::from(v));
270    }
271
272    /// Gets `SecurityDesc`, Tag 107.
273    pub fn get_security_desc(&self) -> Result<String, MessageRejectErrorEnum> {
274        let mut fld = field::SecurityDescField::new(String::new());
275        self.message.body.get_field(tag::SECURITY_DESC, &mut fld.0)?;
276        Ok(fld.value().to_string())
277    }
278
279
280    /// Returns true if `SecurityDesc` is present, Tag 107.
281    pub fn has_security_desc(&self) -> bool {
282        self.message.body.has(tag::SECURITY_DESC)
283    }
284
285
286
287
288    /// Sets `SecurityID`, Tag 48.
289    pub fn set_security_id(&mut self, v: String) {
290        self.message.body.set_field(tag::SECURITY_ID, FIXString::from(v));
291    }
292
293    /// Gets `SecurityID`, Tag 48.
294    pub fn get_security_id(&self) -> Result<String, MessageRejectErrorEnum> {
295        let mut fld = field::SecurityIDField::new(String::new());
296        self.message.body.get_field(tag::SECURITY_ID, &mut fld.0)?;
297        Ok(fld.value().to_string())
298    }
299
300
301    /// Returns true if `SecurityID` is present, Tag 48.
302    pub fn has_security_id(&self) -> bool {
303        self.message.body.has(tag::SECURITY_ID)
304    }
305
306
307
308
309    /// Sets `Side`, Tag 54.
310    pub fn set_side(&mut self, v: String) {
311        self.message.body.set_field(tag::SIDE, FIXString::from(v));
312    }
313
314    /// Gets `Side`, Tag 54.
315    pub fn get_side(&self) -> Result<String, MessageRejectErrorEnum> {
316        let mut fld = field::SideField::new(String::new());
317        self.message.body.get_field(tag::SIDE, &mut fld.0)?;
318        Ok(fld.value().to_string())
319    }
320
321
322    /// Returns true if `Side` is present, Tag 54.
323    pub fn has_side(&self) -> bool {
324        self.message.body.has(tag::SIDE)
325    }
326
327
328
329
330    /// Sets `Symbol`, Tag 55.
331    pub fn set_symbol(&mut self, v: String) {
332        self.message.body.set_field(tag::SYMBOL, FIXString::from(v));
333    }
334
335    /// Gets `Symbol`, Tag 55.
336    pub fn get_symbol(&self) -> Result<String, MessageRejectErrorEnum> {
337        let mut fld = field::SymbolField::new(String::new());
338        self.message.body.get_field(tag::SYMBOL, &mut fld.0)?;
339        Ok(fld.value().to_string())
340    }
341
342
343    /// Returns true if `Symbol` is present, Tag 55.
344    pub fn has_symbol(&self) -> bool {
345        self.message.body.has(tag::SYMBOL)
346    }
347
348
349
350
351    /// Sets `SymbolSfx`, Tag 65.
352    pub fn set_symbol_sfx(&mut self, v: String) {
353        self.message.body.set_field(tag::SYMBOL_SFX, FIXString::from(v));
354    }
355
356    /// Gets `SymbolSfx`, Tag 65.
357    pub fn get_symbol_sfx(&self) -> Result<String, MessageRejectErrorEnum> {
358        let mut fld = field::SymbolSfxField::new(String::new());
359        self.message.body.get_field(tag::SYMBOL_SFX, &mut fld.0)?;
360        Ok(fld.value().to_string())
361    }
362
363
364    /// Returns true if `SymbolSfx` is present, Tag 65.
365    pub fn has_symbol_sfx(&self) -> bool {
366        self.message.body.has(tag::SYMBOL_SFX)
367    }
368
369
370
371
372    /// Sets `Text`, Tag 58.
373    pub fn set_text(&mut self, v: String) {
374        self.message.body.set_field(tag::TEXT, FIXString::from(v));
375    }
376
377    /// Gets `Text`, Tag 58.
378    pub fn get_text(&self) -> Result<String, MessageRejectErrorEnum> {
379        let mut fld = field::TextField::new(String::new());
380        self.message.body.get_field(tag::TEXT, &mut fld.0)?;
381        Ok(fld.value().to_string())
382    }
383
384
385    /// Returns true if `Text` is present, Tag 58.
386    pub fn has_text(&self) -> bool {
387        self.message.body.has(tag::TEXT)
388    }
389
390
391}
392
393/// `RouteOut` is the callback type for routing `OrderCancelRequest` messages.
394pub type RouteOut = fn(msg: OrderCancelRequest, session_id: SessionID) -> Result<(), MessageRejectErrorEnum>;
395
396/// Route type returned by the `route` function.
397pub type Route = (&'static str, &'static str, Box<dyn Fn(&Message, SessionID) -> Result<(), MessageRejectErrorEnum> + Send>);
398
399/// Returns the begin string, message type, and route function for `OrderCancelRequest`.
400pub fn route(router: RouteOut) -> Route {
401    let r = move |msg: &Message, session_id: SessionID| -> Result<(), MessageRejectErrorEnum> {
402        router(OrderCancelRequest::from_message(msg.clone()), session_id)
403    };
404    ("FIX.4.0", "F", Box::new(r))
405}