Skip to main content

fixer_fix/fix43/
derivative_security_list_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/// `DerivativeSecurityListRequest` is the `fix43` `DerivativeSecurityListRequest` type, `MsgType` = z.
19pub struct DerivativeSecurityListRequest {
20    pub message: Message,
21}
22
23impl DerivativeSecurityListRequest {
24    /// Creates a new `DerivativeSecurityListRequest` with required fields.
25    pub fn new(security_req_id: field::SecurityReqIDField, security_list_request_type: field::SecurityListRequestTypeField) -> Self {
26        let mut msg = Message::new();
27        msg.header.set_field(tag::MSG_TYPE, FIXString::from("z".to_string()));
28
29        msg.body.set_field(tag::SECURITY_REQ_ID, security_req_id.0);
30
31        msg.body.set_field(tag::SECURITY_LIST_REQUEST_TYPE, security_list_request_type.0);
32
33        Self { message: msg }
34    }
35
36    /// Creates a `DerivativeSecurityListRequest` from an existing `Message`.
37    pub fn from_message(msg: Message) -> Self {
38        Self { message: msg }
39    }
40
41    /// Returns the underlying `Message`.
42    pub fn to_message(self) -> Message {
43        self.message
44    }
45
46
47
48
49    /// Sets `Currency`, Tag 15.
50    pub fn set_currency(&mut self, v: String) {
51        self.message.body.set_field(tag::CURRENCY, FIXString::from(v));
52    }
53
54    /// Gets `Currency`, Tag 15.
55    pub fn get_currency(&self) -> Result<String, MessageRejectErrorEnum> {
56        let mut fld = field::CurrencyField::new(String::new());
57        self.message.body.get_field(tag::CURRENCY, &mut fld.0)?;
58        Ok(fld.value().to_string())
59    }
60
61
62    /// Returns true if `Currency` is present, Tag 15.
63    pub fn has_currency(&self) -> bool {
64        self.message.body.has(tag::CURRENCY)
65    }
66
67
68
69
70    /// Sets `EncodedText`, Tag 355.
71    pub fn set_encoded_text(&mut self, v: String) {
72        self.message.body.set_field(tag::ENCODED_TEXT, FIXString::from(v));
73    }
74
75    /// Gets `EncodedText`, Tag 355.
76    pub fn get_encoded_text(&self) -> Result<String, MessageRejectErrorEnum> {
77        let mut fld = field::EncodedTextField::new(String::new());
78        self.message.body.get_field(tag::ENCODED_TEXT, &mut fld.0)?;
79        Ok(fld.value().to_string())
80    }
81
82
83    /// Returns true if `EncodedText` is present, Tag 355.
84    pub fn has_encoded_text(&self) -> bool {
85        self.message.body.has(tag::ENCODED_TEXT)
86    }
87
88
89
90
91    /// Sets `EncodedTextLen`, Tag 354.
92    pub fn set_encoded_text_len(&mut self, v: isize) {
93        self.message.body.set_field(tag::ENCODED_TEXT_LEN, fixer::fix_int::FIXInt::from(v));
94    }
95
96    /// Gets `EncodedTextLen`, Tag 354.
97    pub fn get_encoded_text_len(&self) -> Result<isize, MessageRejectErrorEnum> {
98        let mut fld = field::EncodedTextLenField::new(0);
99        self.message.body.get_field(tag::ENCODED_TEXT_LEN, &mut fld.0)?;
100        Ok(fld.value())
101    }
102
103
104    /// Returns true if `EncodedTextLen` is present, Tag 354.
105    pub fn has_encoded_text_len(&self) -> bool {
106        self.message.body.has(tag::ENCODED_TEXT_LEN)
107    }
108
109
110
111
112    /// Sets `EncodedUnderlyingIssuer`, Tag 363.
113    pub fn set_encoded_underlying_issuer(&mut self, v: String) {
114        self.message.body.set_field(tag::ENCODED_UNDERLYING_ISSUER, FIXString::from(v));
115    }
116
117    /// Gets `EncodedUnderlyingIssuer`, Tag 363.
118    pub fn get_encoded_underlying_issuer(&self) -> Result<String, MessageRejectErrorEnum> {
119        let mut fld = field::EncodedUnderlyingIssuerField::new(String::new());
120        self.message.body.get_field(tag::ENCODED_UNDERLYING_ISSUER, &mut fld.0)?;
121        Ok(fld.value().to_string())
122    }
123
124
125    /// Returns true if `EncodedUnderlyingIssuer` is present, Tag 363.
126    pub fn has_encoded_underlying_issuer(&self) -> bool {
127        self.message.body.has(tag::ENCODED_UNDERLYING_ISSUER)
128    }
129
130
131
132
133    /// Sets `EncodedUnderlyingIssuerLen`, Tag 362.
134    pub fn set_encoded_underlying_issuer_len(&mut self, v: isize) {
135        self.message.body.set_field(tag::ENCODED_UNDERLYING_ISSUER_LEN, fixer::fix_int::FIXInt::from(v));
136    }
137
138    /// Gets `EncodedUnderlyingIssuerLen`, Tag 362.
139    pub fn get_encoded_underlying_issuer_len(&self) -> Result<isize, MessageRejectErrorEnum> {
140        let mut fld = field::EncodedUnderlyingIssuerLenField::new(0);
141        self.message.body.get_field(tag::ENCODED_UNDERLYING_ISSUER_LEN, &mut fld.0)?;
142        Ok(fld.value())
143    }
144
145
146    /// Returns true if `EncodedUnderlyingIssuerLen` is present, Tag 362.
147    pub fn has_encoded_underlying_issuer_len(&self) -> bool {
148        self.message.body.has(tag::ENCODED_UNDERLYING_ISSUER_LEN)
149    }
150
151
152
153
154    /// Sets `EncodedUnderlyingSecurityDesc`, Tag 365.
155    pub fn set_encoded_underlying_security_desc(&mut self, v: String) {
156        self.message.body.set_field(tag::ENCODED_UNDERLYING_SECURITY_DESC, FIXString::from(v));
157    }
158
159    /// Gets `EncodedUnderlyingSecurityDesc`, Tag 365.
160    pub fn get_encoded_underlying_security_desc(&self) -> Result<String, MessageRejectErrorEnum> {
161        let mut fld = field::EncodedUnderlyingSecurityDescField::new(String::new());
162        self.message.body.get_field(tag::ENCODED_UNDERLYING_SECURITY_DESC, &mut fld.0)?;
163        Ok(fld.value().to_string())
164    }
165
166
167    /// Returns true if `EncodedUnderlyingSecurityDesc` is present, Tag 365.
168    pub fn has_encoded_underlying_security_desc(&self) -> bool {
169        self.message.body.has(tag::ENCODED_UNDERLYING_SECURITY_DESC)
170    }
171
172
173
174
175    /// Sets `EncodedUnderlyingSecurityDescLen`, Tag 364.
176    pub fn set_encoded_underlying_security_desc_len(&mut self, v: isize) {
177        self.message.body.set_field(tag::ENCODED_UNDERLYING_SECURITY_DESC_LEN, fixer::fix_int::FIXInt::from(v));
178    }
179
180    /// Gets `EncodedUnderlyingSecurityDescLen`, Tag 364.
181    pub fn get_encoded_underlying_security_desc_len(&self) -> Result<isize, MessageRejectErrorEnum> {
182        let mut fld = field::EncodedUnderlyingSecurityDescLenField::new(0);
183        self.message.body.get_field(tag::ENCODED_UNDERLYING_SECURITY_DESC_LEN, &mut fld.0)?;
184        Ok(fld.value())
185    }
186
187
188    /// Returns true if `EncodedUnderlyingSecurityDescLen` is present, Tag 364.
189    pub fn has_encoded_underlying_security_desc_len(&self) -> bool {
190        self.message.body.has(tag::ENCODED_UNDERLYING_SECURITY_DESC_LEN)
191    }
192
193
194
195
196    /// Sets `NoUnderlyingSecurityAltID`, Tag 457.
197    pub fn set_no_underlying_security_alt_id(&mut self, v: isize) {
198        self.message.body.set_field(tag::NO_UNDERLYING_SECURITY_ALT_ID, fixer::fix_int::FIXInt::from(v));
199    }
200
201    /// Gets `NoUnderlyingSecurityAltID`, Tag 457.
202    pub fn get_no_underlying_security_alt_id(&self) -> Result<isize, MessageRejectErrorEnum> {
203        let mut fld = field::NoUnderlyingSecurityAltIDField::new(0);
204        self.message.body.get_field(tag::NO_UNDERLYING_SECURITY_ALT_ID, &mut fld.0)?;
205        Ok(fld.value())
206    }
207
208
209    /// Returns true if `NoUnderlyingSecurityAltID` is present, Tag 457.
210    pub fn has_no_underlying_security_alt_id(&self) -> bool {
211        self.message.body.has(tag::NO_UNDERLYING_SECURITY_ALT_ID)
212    }
213
214
215
216
217    /// Sets `SecurityListRequestType`, Tag 559.
218    pub fn set_security_list_request_type(&mut self, v: isize) {
219        self.message.body.set_field(tag::SECURITY_LIST_REQUEST_TYPE, fixer::fix_int::FIXInt::from(v));
220    }
221
222    /// Gets `SecurityListRequestType`, Tag 559.
223    pub fn get_security_list_request_type(&self) -> Result<isize, MessageRejectErrorEnum> {
224        let mut fld = field::SecurityListRequestTypeField::new(0);
225        self.message.body.get_field(tag::SECURITY_LIST_REQUEST_TYPE, &mut fld.0)?;
226        Ok(fld.value())
227    }
228
229
230    /// Returns true if `SecurityListRequestType` is present, Tag 559.
231    pub fn has_security_list_request_type(&self) -> bool {
232        self.message.body.has(tag::SECURITY_LIST_REQUEST_TYPE)
233    }
234
235
236
237
238    /// Sets `SecurityReqID`, Tag 320.
239    pub fn set_security_req_id(&mut self, v: String) {
240        self.message.body.set_field(tag::SECURITY_REQ_ID, FIXString::from(v));
241    }
242
243    /// Gets `SecurityReqID`, Tag 320.
244    pub fn get_security_req_id(&self) -> Result<String, MessageRejectErrorEnum> {
245        let mut fld = field::SecurityReqIDField::new(String::new());
246        self.message.body.get_field(tag::SECURITY_REQ_ID, &mut fld.0)?;
247        Ok(fld.value().to_string())
248    }
249
250
251    /// Returns true if `SecurityReqID` is present, Tag 320.
252    pub fn has_security_req_id(&self) -> bool {
253        self.message.body.has(tag::SECURITY_REQ_ID)
254    }
255
256
257
258
259    /// Sets `SubscriptionRequestType`, Tag 263.
260    pub fn set_subscription_request_type(&mut self, v: String) {
261        self.message.body.set_field(tag::SUBSCRIPTION_REQUEST_TYPE, FIXString::from(v));
262    }
263
264    /// Gets `SubscriptionRequestType`, Tag 263.
265    pub fn get_subscription_request_type(&self) -> Result<String, MessageRejectErrorEnum> {
266        let mut fld = field::SubscriptionRequestTypeField::new(String::new());
267        self.message.body.get_field(tag::SUBSCRIPTION_REQUEST_TYPE, &mut fld.0)?;
268        Ok(fld.value().to_string())
269    }
270
271
272    /// Returns true if `SubscriptionRequestType` is present, Tag 263.
273    pub fn has_subscription_request_type(&self) -> bool {
274        self.message.body.has(tag::SUBSCRIPTION_REQUEST_TYPE)
275    }
276
277
278
279
280    /// Sets `Text`, Tag 58.
281    pub fn set_text(&mut self, v: String) {
282        self.message.body.set_field(tag::TEXT, FIXString::from(v));
283    }
284
285    /// Gets `Text`, Tag 58.
286    pub fn get_text(&self) -> Result<String, MessageRejectErrorEnum> {
287        let mut fld = field::TextField::new(String::new());
288        self.message.body.get_field(tag::TEXT, &mut fld.0)?;
289        Ok(fld.value().to_string())
290    }
291
292
293    /// Returns true if `Text` is present, Tag 58.
294    pub fn has_text(&self) -> bool {
295        self.message.body.has(tag::TEXT)
296    }
297
298
299
300
301    /// Sets `TradingSessionID`, Tag 336.
302    pub fn set_trading_session_id(&mut self, v: String) {
303        self.message.body.set_field(tag::TRADING_SESSION_ID, FIXString::from(v));
304    }
305
306    /// Gets `TradingSessionID`, Tag 336.
307    pub fn get_trading_session_id(&self) -> Result<String, MessageRejectErrorEnum> {
308        let mut fld = field::TradingSessionIDField::new(String::new());
309        self.message.body.get_field(tag::TRADING_SESSION_ID, &mut fld.0)?;
310        Ok(fld.value().to_string())
311    }
312
313
314    /// Returns true if `TradingSessionID` is present, Tag 336.
315    pub fn has_trading_session_id(&self) -> bool {
316        self.message.body.has(tag::TRADING_SESSION_ID)
317    }
318
319
320
321
322    /// Sets `TradingSessionSubID`, Tag 625.
323    pub fn set_trading_session_sub_id(&mut self, v: String) {
324        self.message.body.set_field(tag::TRADING_SESSION_SUB_ID, FIXString::from(v));
325    }
326
327    /// Gets `TradingSessionSubID`, Tag 625.
328    pub fn get_trading_session_sub_id(&self) -> Result<String, MessageRejectErrorEnum> {
329        let mut fld = field::TradingSessionSubIDField::new(String::new());
330        self.message.body.get_field(tag::TRADING_SESSION_SUB_ID, &mut fld.0)?;
331        Ok(fld.value().to_string())
332    }
333
334
335    /// Returns true if `TradingSessionSubID` is present, Tag 625.
336    pub fn has_trading_session_sub_id(&self) -> bool {
337        self.message.body.has(tag::TRADING_SESSION_SUB_ID)
338    }
339
340
341
342
343    /// Sets `UnderlyingCFICode`, Tag 463.
344    pub fn set_underlying_cfi_code(&mut self, v: String) {
345        self.message.body.set_field(tag::UNDERLYING_CFI_CODE, FIXString::from(v));
346    }
347
348    /// Gets `UnderlyingCFICode`, Tag 463.
349    pub fn get_underlying_cfi_code(&self) -> Result<String, MessageRejectErrorEnum> {
350        let mut fld = field::UnderlyingCFICodeField::new(String::new());
351        self.message.body.get_field(tag::UNDERLYING_CFI_CODE, &mut fld.0)?;
352        Ok(fld.value().to_string())
353    }
354
355
356    /// Returns true if `UnderlyingCFICode` is present, Tag 463.
357    pub fn has_underlying_cfi_code(&self) -> bool {
358        self.message.body.has(tag::UNDERLYING_CFI_CODE)
359    }
360
361
362
363
364    /// Sets `UnderlyingContractMultiplier`, Tag 436.
365    pub fn set_underlying_contract_multiplier(&mut self, val: Decimal, scale: i32) {
366        self.message.body.set_field(tag::UNDERLYING_CONTRACT_MULTIPLIER, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
367    }
368
369    /// Gets `UnderlyingContractMultiplier`, Tag 436.
370    pub fn get_underlying_contract_multiplier(&self) -> Result<Decimal, MessageRejectErrorEnum> {
371        let mut fld = field::UnderlyingContractMultiplierField::new(Decimal::ZERO, 0);
372        self.message.body.get_field(tag::UNDERLYING_CONTRACT_MULTIPLIER, &mut fld.0)?;
373        Ok(fld.value())
374    }
375
376
377    /// Returns true if `UnderlyingContractMultiplier` is present, Tag 436.
378    pub fn has_underlying_contract_multiplier(&self) -> bool {
379        self.message.body.has(tag::UNDERLYING_CONTRACT_MULTIPLIER)
380    }
381
382
383
384
385    /// Sets `UnderlyingCountryOfIssue`, Tag 592.
386    pub fn set_underlying_country_of_issue(&mut self, v: String) {
387        self.message.body.set_field(tag::UNDERLYING_COUNTRY_OF_ISSUE, FIXString::from(v));
388    }
389
390    /// Gets `UnderlyingCountryOfIssue`, Tag 592.
391    pub fn get_underlying_country_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
392        let mut fld = field::UnderlyingCountryOfIssueField::new(String::new());
393        self.message.body.get_field(tag::UNDERLYING_COUNTRY_OF_ISSUE, &mut fld.0)?;
394        Ok(fld.value().to_string())
395    }
396
397
398    /// Returns true if `UnderlyingCountryOfIssue` is present, Tag 592.
399    pub fn has_underlying_country_of_issue(&self) -> bool {
400        self.message.body.has(tag::UNDERLYING_COUNTRY_OF_ISSUE)
401    }
402
403
404
405
406    /// Sets `UnderlyingCouponPaymentDate`, Tag 241.
407    pub fn set_underlying_coupon_payment_date(&mut self, v: String) {
408        self.message.body.set_field(tag::UNDERLYING_COUPON_PAYMENT_DATE, FIXString::from(v));
409    }
410
411    /// Gets `UnderlyingCouponPaymentDate`, Tag 241.
412    pub fn get_underlying_coupon_payment_date(&self) -> Result<String, MessageRejectErrorEnum> {
413        let mut fld = field::UnderlyingCouponPaymentDateField::new(String::new());
414        self.message.body.get_field(tag::UNDERLYING_COUPON_PAYMENT_DATE, &mut fld.0)?;
415        Ok(fld.value().to_string())
416    }
417
418
419    /// Returns true if `UnderlyingCouponPaymentDate` is present, Tag 241.
420    pub fn has_underlying_coupon_payment_date(&self) -> bool {
421        self.message.body.has(tag::UNDERLYING_COUPON_PAYMENT_DATE)
422    }
423
424
425
426
427    /// Sets `UnderlyingCouponRate`, Tag 435.
428    pub fn set_underlying_coupon_rate(&mut self, val: Decimal, scale: i32) {
429        self.message.body.set_field(tag::UNDERLYING_COUPON_RATE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
430    }
431
432    /// Gets `UnderlyingCouponRate`, Tag 435.
433    pub fn get_underlying_coupon_rate(&self) -> Result<Decimal, MessageRejectErrorEnum> {
434        let mut fld = field::UnderlyingCouponRateField::new(Decimal::ZERO, 0);
435        self.message.body.get_field(tag::UNDERLYING_COUPON_RATE, &mut fld.0)?;
436        Ok(fld.value())
437    }
438
439
440    /// Returns true if `UnderlyingCouponRate` is present, Tag 435.
441    pub fn has_underlying_coupon_rate(&self) -> bool {
442        self.message.body.has(tag::UNDERLYING_COUPON_RATE)
443    }
444
445
446
447
448    /// Sets `UnderlyingCreditRating`, Tag 256.
449    pub fn set_underlying_credit_rating(&mut self, v: String) {
450        self.message.body.set_field(tag::UNDERLYING_CREDIT_RATING, FIXString::from(v));
451    }
452
453    /// Gets `UnderlyingCreditRating`, Tag 256.
454    pub fn get_underlying_credit_rating(&self) -> Result<String, MessageRejectErrorEnum> {
455        let mut fld = field::UnderlyingCreditRatingField::new(String::new());
456        self.message.body.get_field(tag::UNDERLYING_CREDIT_RATING, &mut fld.0)?;
457        Ok(fld.value().to_string())
458    }
459
460
461    /// Returns true if `UnderlyingCreditRating` is present, Tag 256.
462    pub fn has_underlying_credit_rating(&self) -> bool {
463        self.message.body.has(tag::UNDERLYING_CREDIT_RATING)
464    }
465
466
467
468
469    /// Sets `UnderlyingFactor`, Tag 246.
470    pub fn set_underlying_factor(&mut self, val: Decimal, scale: i32) {
471        self.message.body.set_field(tag::UNDERLYING_FACTOR, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
472    }
473
474    /// Gets `UnderlyingFactor`, Tag 246.
475    pub fn get_underlying_factor(&self) -> Result<Decimal, MessageRejectErrorEnum> {
476        let mut fld = field::UnderlyingFactorField::new(Decimal::ZERO, 0);
477        self.message.body.get_field(tag::UNDERLYING_FACTOR, &mut fld.0)?;
478        Ok(fld.value())
479    }
480
481
482    /// Returns true if `UnderlyingFactor` is present, Tag 246.
483    pub fn has_underlying_factor(&self) -> bool {
484        self.message.body.has(tag::UNDERLYING_FACTOR)
485    }
486
487
488
489
490    /// Sets `UnderlyingInstrRegistry`, Tag 595.
491    pub fn set_underlying_instr_registry(&mut self, v: String) {
492        self.message.body.set_field(tag::UNDERLYING_INSTR_REGISTRY, FIXString::from(v));
493    }
494
495    /// Gets `UnderlyingInstrRegistry`, Tag 595.
496    pub fn get_underlying_instr_registry(&self) -> Result<String, MessageRejectErrorEnum> {
497        let mut fld = field::UnderlyingInstrRegistryField::new(String::new());
498        self.message.body.get_field(tag::UNDERLYING_INSTR_REGISTRY, &mut fld.0)?;
499        Ok(fld.value().to_string())
500    }
501
502
503    /// Returns true if `UnderlyingInstrRegistry` is present, Tag 595.
504    pub fn has_underlying_instr_registry(&self) -> bool {
505        self.message.body.has(tag::UNDERLYING_INSTR_REGISTRY)
506    }
507
508
509
510
511    /// Sets `UnderlyingIssueDate`, Tag 242.
512    pub fn set_underlying_issue_date(&mut self, v: String) {
513        self.message.body.set_field(tag::UNDERLYING_ISSUE_DATE, FIXString::from(v));
514    }
515
516    /// Gets `UnderlyingIssueDate`, Tag 242.
517    pub fn get_underlying_issue_date(&self) -> Result<String, MessageRejectErrorEnum> {
518        let mut fld = field::UnderlyingIssueDateField::new(String::new());
519        self.message.body.get_field(tag::UNDERLYING_ISSUE_DATE, &mut fld.0)?;
520        Ok(fld.value().to_string())
521    }
522
523
524    /// Returns true if `UnderlyingIssueDate` is present, Tag 242.
525    pub fn has_underlying_issue_date(&self) -> bool {
526        self.message.body.has(tag::UNDERLYING_ISSUE_DATE)
527    }
528
529
530
531
532    /// Sets `UnderlyingIssuer`, Tag 306.
533    pub fn set_underlying_issuer(&mut self, v: String) {
534        self.message.body.set_field(tag::UNDERLYING_ISSUER, FIXString::from(v));
535    }
536
537    /// Gets `UnderlyingIssuer`, Tag 306.
538    pub fn get_underlying_issuer(&self) -> Result<String, MessageRejectErrorEnum> {
539        let mut fld = field::UnderlyingIssuerField::new(String::new());
540        self.message.body.get_field(tag::UNDERLYING_ISSUER, &mut fld.0)?;
541        Ok(fld.value().to_string())
542    }
543
544
545    /// Returns true if `UnderlyingIssuer` is present, Tag 306.
546    pub fn has_underlying_issuer(&self) -> bool {
547        self.message.body.has(tag::UNDERLYING_ISSUER)
548    }
549
550
551
552
553    /// Sets `UnderlyingLocaleOfIssue`, Tag 594.
554    pub fn set_underlying_locale_of_issue(&mut self, v: String) {
555        self.message.body.set_field(tag::UNDERLYING_LOCALE_OF_ISSUE, FIXString::from(v));
556    }
557
558    /// Gets `UnderlyingLocaleOfIssue`, Tag 594.
559    pub fn get_underlying_locale_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
560        let mut fld = field::UnderlyingLocaleOfIssueField::new(String::new());
561        self.message.body.get_field(tag::UNDERLYING_LOCALE_OF_ISSUE, &mut fld.0)?;
562        Ok(fld.value().to_string())
563    }
564
565
566    /// Returns true if `UnderlyingLocaleOfIssue` is present, Tag 594.
567    pub fn has_underlying_locale_of_issue(&self) -> bool {
568        self.message.body.has(tag::UNDERLYING_LOCALE_OF_ISSUE)
569    }
570
571
572
573
574    /// Sets `UnderlyingMaturityDate`, Tag 542.
575    pub fn set_underlying_maturity_date(&mut self, v: String) {
576        self.message.body.set_field(tag::UNDERLYING_MATURITY_DATE, FIXString::from(v));
577    }
578
579    /// Gets `UnderlyingMaturityDate`, Tag 542.
580    pub fn get_underlying_maturity_date(&self) -> Result<String, MessageRejectErrorEnum> {
581        let mut fld = field::UnderlyingMaturityDateField::new(String::new());
582        self.message.body.get_field(tag::UNDERLYING_MATURITY_DATE, &mut fld.0)?;
583        Ok(fld.value().to_string())
584    }
585
586
587    /// Returns true if `UnderlyingMaturityDate` is present, Tag 542.
588    pub fn has_underlying_maturity_date(&self) -> bool {
589        self.message.body.has(tag::UNDERLYING_MATURITY_DATE)
590    }
591
592
593
594
595    /// Sets `UnderlyingMaturityMonthYear`, Tag 313.
596    pub fn set_underlying_maturity_month_year(&mut self, v: String) {
597        self.message.body.set_field(tag::UNDERLYING_MATURITY_MONTH_YEAR, FIXString::from(v));
598    }
599
600    /// Gets `UnderlyingMaturityMonthYear`, Tag 313.
601    pub fn get_underlying_maturity_month_year(&self) -> Result<String, MessageRejectErrorEnum> {
602        let mut fld = field::UnderlyingMaturityMonthYearField::new(String::new());
603        self.message.body.get_field(tag::UNDERLYING_MATURITY_MONTH_YEAR, &mut fld.0)?;
604        Ok(fld.value().to_string())
605    }
606
607
608    /// Returns true if `UnderlyingMaturityMonthYear` is present, Tag 313.
609    pub fn has_underlying_maturity_month_year(&self) -> bool {
610        self.message.body.has(tag::UNDERLYING_MATURITY_MONTH_YEAR)
611    }
612
613
614
615
616    /// Sets `UnderlyingOptAttribute`, Tag 317.
617    pub fn set_underlying_opt_attribute(&mut self, v: String) {
618        self.message.body.set_field(tag::UNDERLYING_OPT_ATTRIBUTE, FIXString::from(v));
619    }
620
621    /// Gets `UnderlyingOptAttribute`, Tag 317.
622    pub fn get_underlying_opt_attribute(&self) -> Result<String, MessageRejectErrorEnum> {
623        let mut fld = field::UnderlyingOptAttributeField::new(String::new());
624        self.message.body.get_field(tag::UNDERLYING_OPT_ATTRIBUTE, &mut fld.0)?;
625        Ok(fld.value().to_string())
626    }
627
628
629    /// Returns true if `UnderlyingOptAttribute` is present, Tag 317.
630    pub fn has_underlying_opt_attribute(&self) -> bool {
631        self.message.body.has(tag::UNDERLYING_OPT_ATTRIBUTE)
632    }
633
634
635
636
637    /// Sets `UnderlyingProduct`, Tag 462.
638    pub fn set_underlying_product(&mut self, v: isize) {
639        self.message.body.set_field(tag::UNDERLYING_PRODUCT, fixer::fix_int::FIXInt::from(v));
640    }
641
642    /// Gets `UnderlyingProduct`, Tag 462.
643    pub fn get_underlying_product(&self) -> Result<isize, MessageRejectErrorEnum> {
644        let mut fld = field::UnderlyingProductField::new(0);
645        self.message.body.get_field(tag::UNDERLYING_PRODUCT, &mut fld.0)?;
646        Ok(fld.value())
647    }
648
649
650    /// Returns true if `UnderlyingProduct` is present, Tag 462.
651    pub fn has_underlying_product(&self) -> bool {
652        self.message.body.has(tag::UNDERLYING_PRODUCT)
653    }
654
655
656
657
658    /// Sets `UnderlyingRedemptionDate`, Tag 247.
659    pub fn set_underlying_redemption_date(&mut self, v: String) {
660        self.message.body.set_field(tag::UNDERLYING_REDEMPTION_DATE, FIXString::from(v));
661    }
662
663    /// Gets `UnderlyingRedemptionDate`, Tag 247.
664    pub fn get_underlying_redemption_date(&self) -> Result<String, MessageRejectErrorEnum> {
665        let mut fld = field::UnderlyingRedemptionDateField::new(String::new());
666        self.message.body.get_field(tag::UNDERLYING_REDEMPTION_DATE, &mut fld.0)?;
667        Ok(fld.value().to_string())
668    }
669
670
671    /// Returns true if `UnderlyingRedemptionDate` is present, Tag 247.
672    pub fn has_underlying_redemption_date(&self) -> bool {
673        self.message.body.has(tag::UNDERLYING_REDEMPTION_DATE)
674    }
675
676
677
678
679    /// Sets `UnderlyingRepoCollateralSecurityType`, Tag 243.
680    pub fn set_underlying_repo_collateral_security_type(&mut self, v: isize) {
681        self.message.body.set_field(tag::UNDERLYING_REPO_COLLATERAL_SECURITY_TYPE, fixer::fix_int::FIXInt::from(v));
682    }
683
684    /// Gets `UnderlyingRepoCollateralSecurityType`, Tag 243.
685    pub fn get_underlying_repo_collateral_security_type(&self) -> Result<isize, MessageRejectErrorEnum> {
686        let mut fld = field::UnderlyingRepoCollateralSecurityTypeField::new(0);
687        self.message.body.get_field(tag::UNDERLYING_REPO_COLLATERAL_SECURITY_TYPE, &mut fld.0)?;
688        Ok(fld.value())
689    }
690
691
692    /// Returns true if `UnderlyingRepoCollateralSecurityType` is present, Tag 243.
693    pub fn has_underlying_repo_collateral_security_type(&self) -> bool {
694        self.message.body.has(tag::UNDERLYING_REPO_COLLATERAL_SECURITY_TYPE)
695    }
696
697
698
699
700    /// Sets `UnderlyingRepurchaseRate`, Tag 245.
701    pub fn set_underlying_repurchase_rate(&mut self, val: Decimal, scale: i32) {
702        self.message.body.set_field(tag::UNDERLYING_REPURCHASE_RATE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
703    }
704
705    /// Gets `UnderlyingRepurchaseRate`, Tag 245.
706    pub fn get_underlying_repurchase_rate(&self) -> Result<Decimal, MessageRejectErrorEnum> {
707        let mut fld = field::UnderlyingRepurchaseRateField::new(Decimal::ZERO, 0);
708        self.message.body.get_field(tag::UNDERLYING_REPURCHASE_RATE, &mut fld.0)?;
709        Ok(fld.value())
710    }
711
712
713    /// Returns true if `UnderlyingRepurchaseRate` is present, Tag 245.
714    pub fn has_underlying_repurchase_rate(&self) -> bool {
715        self.message.body.has(tag::UNDERLYING_REPURCHASE_RATE)
716    }
717
718
719
720
721    /// Sets `UnderlyingRepurchaseTerm`, Tag 244.
722    pub fn set_underlying_repurchase_term(&mut self, v: isize) {
723        self.message.body.set_field(tag::UNDERLYING_REPURCHASE_TERM, fixer::fix_int::FIXInt::from(v));
724    }
725
726    /// Gets `UnderlyingRepurchaseTerm`, Tag 244.
727    pub fn get_underlying_repurchase_term(&self) -> Result<isize, MessageRejectErrorEnum> {
728        let mut fld = field::UnderlyingRepurchaseTermField::new(0);
729        self.message.body.get_field(tag::UNDERLYING_REPURCHASE_TERM, &mut fld.0)?;
730        Ok(fld.value())
731    }
732
733
734    /// Returns true if `UnderlyingRepurchaseTerm` is present, Tag 244.
735    pub fn has_underlying_repurchase_term(&self) -> bool {
736        self.message.body.has(tag::UNDERLYING_REPURCHASE_TERM)
737    }
738
739
740
741
742    /// Sets `UnderlyingSecurityDesc`, Tag 307.
743    pub fn set_underlying_security_desc(&mut self, v: String) {
744        self.message.body.set_field(tag::UNDERLYING_SECURITY_DESC, FIXString::from(v));
745    }
746
747    /// Gets `UnderlyingSecurityDesc`, Tag 307.
748    pub fn get_underlying_security_desc(&self) -> Result<String, MessageRejectErrorEnum> {
749        let mut fld = field::UnderlyingSecurityDescField::new(String::new());
750        self.message.body.get_field(tag::UNDERLYING_SECURITY_DESC, &mut fld.0)?;
751        Ok(fld.value().to_string())
752    }
753
754
755    /// Returns true if `UnderlyingSecurityDesc` is present, Tag 307.
756    pub fn has_underlying_security_desc(&self) -> bool {
757        self.message.body.has(tag::UNDERLYING_SECURITY_DESC)
758    }
759
760
761
762
763    /// Sets `UnderlyingSecurityExchange`, Tag 308.
764    pub fn set_underlying_security_exchange(&mut self, v: String) {
765        self.message.body.set_field(tag::UNDERLYING_SECURITY_EXCHANGE, FIXString::from(v));
766    }
767
768    /// Gets `UnderlyingSecurityExchange`, Tag 308.
769    pub fn get_underlying_security_exchange(&self) -> Result<String, MessageRejectErrorEnum> {
770        let mut fld = field::UnderlyingSecurityExchangeField::new(String::new());
771        self.message.body.get_field(tag::UNDERLYING_SECURITY_EXCHANGE, &mut fld.0)?;
772        Ok(fld.value().to_string())
773    }
774
775
776    /// Returns true if `UnderlyingSecurityExchange` is present, Tag 308.
777    pub fn has_underlying_security_exchange(&self) -> bool {
778        self.message.body.has(tag::UNDERLYING_SECURITY_EXCHANGE)
779    }
780
781
782
783
784    /// Sets `UnderlyingSecurityID`, Tag 309.
785    pub fn set_underlying_security_id(&mut self, v: String) {
786        self.message.body.set_field(tag::UNDERLYING_SECURITY_ID, FIXString::from(v));
787    }
788
789    /// Gets `UnderlyingSecurityID`, Tag 309.
790    pub fn get_underlying_security_id(&self) -> Result<String, MessageRejectErrorEnum> {
791        let mut fld = field::UnderlyingSecurityIDField::new(String::new());
792        self.message.body.get_field(tag::UNDERLYING_SECURITY_ID, &mut fld.0)?;
793        Ok(fld.value().to_string())
794    }
795
796
797    /// Returns true if `UnderlyingSecurityID` is present, Tag 309.
798    pub fn has_underlying_security_id(&self) -> bool {
799        self.message.body.has(tag::UNDERLYING_SECURITY_ID)
800    }
801
802
803
804
805    /// Sets `UnderlyingSecurityIDSource`, Tag 305.
806    pub fn set_underlying_security_id_source(&mut self, v: String) {
807        self.message.body.set_field(tag::UNDERLYING_SECURITY_ID_SOURCE, FIXString::from(v));
808    }
809
810    /// Gets `UnderlyingSecurityIDSource`, Tag 305.
811    pub fn get_underlying_security_id_source(&self) -> Result<String, MessageRejectErrorEnum> {
812        let mut fld = field::UnderlyingSecurityIDSourceField::new(String::new());
813        self.message.body.get_field(tag::UNDERLYING_SECURITY_ID_SOURCE, &mut fld.0)?;
814        Ok(fld.value().to_string())
815    }
816
817
818    /// Returns true if `UnderlyingSecurityIDSource` is present, Tag 305.
819    pub fn has_underlying_security_id_source(&self) -> bool {
820        self.message.body.has(tag::UNDERLYING_SECURITY_ID_SOURCE)
821    }
822
823
824
825
826    /// Sets `UnderlyingSecurityType`, Tag 310.
827    pub fn set_underlying_security_type(&mut self, v: String) {
828        self.message.body.set_field(tag::UNDERLYING_SECURITY_TYPE, FIXString::from(v));
829    }
830
831    /// Gets `UnderlyingSecurityType`, Tag 310.
832    pub fn get_underlying_security_type(&self) -> Result<String, MessageRejectErrorEnum> {
833        let mut fld = field::UnderlyingSecurityTypeField::new(String::new());
834        self.message.body.get_field(tag::UNDERLYING_SECURITY_TYPE, &mut fld.0)?;
835        Ok(fld.value().to_string())
836    }
837
838
839    /// Returns true if `UnderlyingSecurityType` is present, Tag 310.
840    pub fn has_underlying_security_type(&self) -> bool {
841        self.message.body.has(tag::UNDERLYING_SECURITY_TYPE)
842    }
843
844
845
846
847    /// Sets `UnderlyingStateOrProvinceOfIssue`, Tag 593.
848    pub fn set_underlying_state_or_province_of_issue(&mut self, v: String) {
849        self.message.body.set_field(tag::UNDERLYING_STATE_OR_PROVINCE_OF_ISSUE, FIXString::from(v));
850    }
851
852    /// Gets `UnderlyingStateOrProvinceOfIssue`, Tag 593.
853    pub fn get_underlying_state_or_province_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
854        let mut fld = field::UnderlyingStateOrProvinceOfIssueField::new(String::new());
855        self.message.body.get_field(tag::UNDERLYING_STATE_OR_PROVINCE_OF_ISSUE, &mut fld.0)?;
856        Ok(fld.value().to_string())
857    }
858
859
860    /// Returns true if `UnderlyingStateOrProvinceOfIssue` is present, Tag 593.
861    pub fn has_underlying_state_or_province_of_issue(&self) -> bool {
862        self.message.body.has(tag::UNDERLYING_STATE_OR_PROVINCE_OF_ISSUE)
863    }
864
865
866
867
868    /// Sets `UnderlyingStrikePrice`, Tag 316.
869    pub fn set_underlying_strike_price(&mut self, val: Decimal, scale: i32) {
870        self.message.body.set_field(tag::UNDERLYING_STRIKE_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
871    }
872
873    /// Gets `UnderlyingStrikePrice`, Tag 316.
874    pub fn get_underlying_strike_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
875        let mut fld = field::UnderlyingStrikePriceField::new(Decimal::ZERO, 0);
876        self.message.body.get_field(tag::UNDERLYING_STRIKE_PRICE, &mut fld.0)?;
877        Ok(fld.value())
878    }
879
880
881    /// Returns true if `UnderlyingStrikePrice` is present, Tag 316.
882    pub fn has_underlying_strike_price(&self) -> bool {
883        self.message.body.has(tag::UNDERLYING_STRIKE_PRICE)
884    }
885
886
887
888
889    /// Sets `UnderlyingSymbol`, Tag 311.
890    pub fn set_underlying_symbol(&mut self, v: String) {
891        self.message.body.set_field(tag::UNDERLYING_SYMBOL, FIXString::from(v));
892    }
893
894    /// Gets `UnderlyingSymbol`, Tag 311.
895    pub fn get_underlying_symbol(&self) -> Result<String, MessageRejectErrorEnum> {
896        let mut fld = field::UnderlyingSymbolField::new(String::new());
897        self.message.body.get_field(tag::UNDERLYING_SYMBOL, &mut fld.0)?;
898        Ok(fld.value().to_string())
899    }
900
901
902    /// Returns true if `UnderlyingSymbol` is present, Tag 311.
903    pub fn has_underlying_symbol(&self) -> bool {
904        self.message.body.has(tag::UNDERLYING_SYMBOL)
905    }
906
907
908
909
910    /// Sets `UnderlyingSymbolSfx`, Tag 312.
911    pub fn set_underlying_symbol_sfx(&mut self, v: String) {
912        self.message.body.set_field(tag::UNDERLYING_SYMBOL_SFX, FIXString::from(v));
913    }
914
915    /// Gets `UnderlyingSymbolSfx`, Tag 312.
916    pub fn get_underlying_symbol_sfx(&self) -> Result<String, MessageRejectErrorEnum> {
917        let mut fld = field::UnderlyingSymbolSfxField::new(String::new());
918        self.message.body.get_field(tag::UNDERLYING_SYMBOL_SFX, &mut fld.0)?;
919        Ok(fld.value().to_string())
920    }
921
922
923    /// Returns true if `UnderlyingSymbolSfx` is present, Tag 312.
924    pub fn has_underlying_symbol_sfx(&self) -> bool {
925        self.message.body.has(tag::UNDERLYING_SYMBOL_SFX)
926    }
927
928
929}
930
931/// `RouteOut` is the callback type for routing `DerivativeSecurityListRequest` messages.
932pub type RouteOut = fn(msg: DerivativeSecurityListRequest, session_id: SessionID) -> Result<(), MessageRejectErrorEnum>;
933
934/// Route type returned by the `route` function.
935pub type Route = (&'static str, &'static str, Box<dyn Fn(&Message, SessionID) -> Result<(), MessageRejectErrorEnum> + Send>);
936
937/// Returns the begin string, message type, and route function for `DerivativeSecurityListRequest`.
938pub fn route(router: RouteOut) -> Route {
939    let r = move |msg: &Message, session_id: SessionID| -> Result<(), MessageRejectErrorEnum> {
940        router(DerivativeSecurityListRequest::from_message(msg.clone()), session_id)
941    };
942    ("FIX.4.3", "z", Box::new(r))
943}