Skip to main content

fixer_fix/fix44/
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 `fix44` `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 `NoUnderlyingStips`, Tag 887.
218    pub fn set_no_underlying_stips(&mut self, v: isize) {
219        self.message.body.set_field(tag::NO_UNDERLYING_STIPS, fixer::fix_int::FIXInt::from(v));
220    }
221
222    /// Gets `NoUnderlyingStips`, Tag 887.
223    pub fn get_no_underlying_stips(&self) -> Result<isize, MessageRejectErrorEnum> {
224        let mut fld = field::NoUnderlyingStipsField::new(0);
225        self.message.body.get_field(tag::NO_UNDERLYING_STIPS, &mut fld.0)?;
226        Ok(fld.value())
227    }
228
229
230    /// Returns true if `NoUnderlyingStips` is present, Tag 887.
231    pub fn has_no_underlying_stips(&self) -> bool {
232        self.message.body.has(tag::NO_UNDERLYING_STIPS)
233    }
234
235
236
237
238    /// Sets `SecurityListRequestType`, Tag 559.
239    pub fn set_security_list_request_type(&mut self, v: isize) {
240        self.message.body.set_field(tag::SECURITY_LIST_REQUEST_TYPE, fixer::fix_int::FIXInt::from(v));
241    }
242
243    /// Gets `SecurityListRequestType`, Tag 559.
244    pub fn get_security_list_request_type(&self) -> Result<isize, MessageRejectErrorEnum> {
245        let mut fld = field::SecurityListRequestTypeField::new(0);
246        self.message.body.get_field(tag::SECURITY_LIST_REQUEST_TYPE, &mut fld.0)?;
247        Ok(fld.value())
248    }
249
250
251    /// Returns true if `SecurityListRequestType` is present, Tag 559.
252    pub fn has_security_list_request_type(&self) -> bool {
253        self.message.body.has(tag::SECURITY_LIST_REQUEST_TYPE)
254    }
255
256
257
258
259    /// Sets `SecurityReqID`, Tag 320.
260    pub fn set_security_req_id(&mut self, v: String) {
261        self.message.body.set_field(tag::SECURITY_REQ_ID, FIXString::from(v));
262    }
263
264    /// Gets `SecurityReqID`, Tag 320.
265    pub fn get_security_req_id(&self) -> Result<String, MessageRejectErrorEnum> {
266        let mut fld = field::SecurityReqIDField::new(String::new());
267        self.message.body.get_field(tag::SECURITY_REQ_ID, &mut fld.0)?;
268        Ok(fld.value().to_string())
269    }
270
271
272    /// Returns true if `SecurityReqID` is present, Tag 320.
273    pub fn has_security_req_id(&self) -> bool {
274        self.message.body.has(tag::SECURITY_REQ_ID)
275    }
276
277
278
279
280    /// Sets `SecuritySubType`, Tag 762.
281    pub fn set_security_sub_type(&mut self, v: String) {
282        self.message.body.set_field(tag::SECURITY_SUB_TYPE, FIXString::from(v));
283    }
284
285    /// Gets `SecuritySubType`, Tag 762.
286    pub fn get_security_sub_type(&self) -> Result<String, MessageRejectErrorEnum> {
287        let mut fld = field::SecuritySubTypeField::new(String::new());
288        self.message.body.get_field(tag::SECURITY_SUB_TYPE, &mut fld.0)?;
289        Ok(fld.value().to_string())
290    }
291
292
293    /// Returns true if `SecuritySubType` is present, Tag 762.
294    pub fn has_security_sub_type(&self) -> bool {
295        self.message.body.has(tag::SECURITY_SUB_TYPE)
296    }
297
298
299
300
301    /// Sets `SubscriptionRequestType`, Tag 263.
302    pub fn set_subscription_request_type(&mut self, v: String) {
303        self.message.body.set_field(tag::SUBSCRIPTION_REQUEST_TYPE, FIXString::from(v));
304    }
305
306    /// Gets `SubscriptionRequestType`, Tag 263.
307    pub fn get_subscription_request_type(&self) -> Result<String, MessageRejectErrorEnum> {
308        let mut fld = field::SubscriptionRequestTypeField::new(String::new());
309        self.message.body.get_field(tag::SUBSCRIPTION_REQUEST_TYPE, &mut fld.0)?;
310        Ok(fld.value().to_string())
311    }
312
313
314    /// Returns true if `SubscriptionRequestType` is present, Tag 263.
315    pub fn has_subscription_request_type(&self) -> bool {
316        self.message.body.has(tag::SUBSCRIPTION_REQUEST_TYPE)
317    }
318
319
320
321
322    /// Sets `Text`, Tag 58.
323    pub fn set_text(&mut self, v: String) {
324        self.message.body.set_field(tag::TEXT, FIXString::from(v));
325    }
326
327    /// Gets `Text`, Tag 58.
328    pub fn get_text(&self) -> Result<String, MessageRejectErrorEnum> {
329        let mut fld = field::TextField::new(String::new());
330        self.message.body.get_field(tag::TEXT, &mut fld.0)?;
331        Ok(fld.value().to_string())
332    }
333
334
335    /// Returns true if `Text` is present, Tag 58.
336    pub fn has_text(&self) -> bool {
337        self.message.body.has(tag::TEXT)
338    }
339
340
341
342
343    /// Sets `TradingSessionID`, Tag 336.
344    pub fn set_trading_session_id(&mut self, v: String) {
345        self.message.body.set_field(tag::TRADING_SESSION_ID, FIXString::from(v));
346    }
347
348    /// Gets `TradingSessionID`, Tag 336.
349    pub fn get_trading_session_id(&self) -> Result<String, MessageRejectErrorEnum> {
350        let mut fld = field::TradingSessionIDField::new(String::new());
351        self.message.body.get_field(tag::TRADING_SESSION_ID, &mut fld.0)?;
352        Ok(fld.value().to_string())
353    }
354
355
356    /// Returns true if `TradingSessionID` is present, Tag 336.
357    pub fn has_trading_session_id(&self) -> bool {
358        self.message.body.has(tag::TRADING_SESSION_ID)
359    }
360
361
362
363
364    /// Sets `TradingSessionSubID`, Tag 625.
365    pub fn set_trading_session_sub_id(&mut self, v: String) {
366        self.message.body.set_field(tag::TRADING_SESSION_SUB_ID, FIXString::from(v));
367    }
368
369    /// Gets `TradingSessionSubID`, Tag 625.
370    pub fn get_trading_session_sub_id(&self) -> Result<String, MessageRejectErrorEnum> {
371        let mut fld = field::TradingSessionSubIDField::new(String::new());
372        self.message.body.get_field(tag::TRADING_SESSION_SUB_ID, &mut fld.0)?;
373        Ok(fld.value().to_string())
374    }
375
376
377    /// Returns true if `TradingSessionSubID` is present, Tag 625.
378    pub fn has_trading_session_sub_id(&self) -> bool {
379        self.message.body.has(tag::TRADING_SESSION_SUB_ID)
380    }
381
382
383
384
385    /// Sets `UnderlyingCFICode`, Tag 463.
386    pub fn set_underlying_cfi_code(&mut self, v: String) {
387        self.message.body.set_field(tag::UNDERLYING_CFI_CODE, FIXString::from(v));
388    }
389
390    /// Gets `UnderlyingCFICode`, Tag 463.
391    pub fn get_underlying_cfi_code(&self) -> Result<String, MessageRejectErrorEnum> {
392        let mut fld = field::UnderlyingCFICodeField::new(String::new());
393        self.message.body.get_field(tag::UNDERLYING_CFI_CODE, &mut fld.0)?;
394        Ok(fld.value().to_string())
395    }
396
397
398    /// Returns true if `UnderlyingCFICode` is present, Tag 463.
399    pub fn has_underlying_cfi_code(&self) -> bool {
400        self.message.body.has(tag::UNDERLYING_CFI_CODE)
401    }
402
403
404
405
406    /// Sets `UnderlyingCPProgram`, Tag 877.
407    pub fn set_underlying_cp_program(&mut self, v: String) {
408        self.message.body.set_field(tag::UNDERLYING_CP_PROGRAM, FIXString::from(v));
409    }
410
411    /// Gets `UnderlyingCPProgram`, Tag 877.
412    pub fn get_underlying_cp_program(&self) -> Result<String, MessageRejectErrorEnum> {
413        let mut fld = field::UnderlyingCPProgramField::new(String::new());
414        self.message.body.get_field(tag::UNDERLYING_CP_PROGRAM, &mut fld.0)?;
415        Ok(fld.value().to_string())
416    }
417
418
419    /// Returns true if `UnderlyingCPProgram` is present, Tag 877.
420    pub fn has_underlying_cp_program(&self) -> bool {
421        self.message.body.has(tag::UNDERLYING_CP_PROGRAM)
422    }
423
424
425
426
427    /// Sets `UnderlyingCPRegType`, Tag 878.
428    pub fn set_underlying_cp_reg_type(&mut self, v: String) {
429        self.message.body.set_field(tag::UNDERLYING_CP_REG_TYPE, FIXString::from(v));
430    }
431
432    /// Gets `UnderlyingCPRegType`, Tag 878.
433    pub fn get_underlying_cp_reg_type(&self) -> Result<String, MessageRejectErrorEnum> {
434        let mut fld = field::UnderlyingCPRegTypeField::new(String::new());
435        self.message.body.get_field(tag::UNDERLYING_CP_REG_TYPE, &mut fld.0)?;
436        Ok(fld.value().to_string())
437    }
438
439
440    /// Returns true if `UnderlyingCPRegType` is present, Tag 878.
441    pub fn has_underlying_cp_reg_type(&self) -> bool {
442        self.message.body.has(tag::UNDERLYING_CP_REG_TYPE)
443    }
444
445
446
447
448    /// Sets `UnderlyingContractMultiplier`, Tag 436.
449    pub fn set_underlying_contract_multiplier(&mut self, val: Decimal, scale: i32) {
450        self.message.body.set_field(tag::UNDERLYING_CONTRACT_MULTIPLIER, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
451    }
452
453    /// Gets `UnderlyingContractMultiplier`, Tag 436.
454    pub fn get_underlying_contract_multiplier(&self) -> Result<Decimal, MessageRejectErrorEnum> {
455        let mut fld = field::UnderlyingContractMultiplierField::new(Decimal::ZERO, 0);
456        self.message.body.get_field(tag::UNDERLYING_CONTRACT_MULTIPLIER, &mut fld.0)?;
457        Ok(fld.value())
458    }
459
460
461    /// Returns true if `UnderlyingContractMultiplier` is present, Tag 436.
462    pub fn has_underlying_contract_multiplier(&self) -> bool {
463        self.message.body.has(tag::UNDERLYING_CONTRACT_MULTIPLIER)
464    }
465
466
467
468
469    /// Sets `UnderlyingCountryOfIssue`, Tag 592.
470    pub fn set_underlying_country_of_issue(&mut self, v: String) {
471        self.message.body.set_field(tag::UNDERLYING_COUNTRY_OF_ISSUE, FIXString::from(v));
472    }
473
474    /// Gets `UnderlyingCountryOfIssue`, Tag 592.
475    pub fn get_underlying_country_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
476        let mut fld = field::UnderlyingCountryOfIssueField::new(String::new());
477        self.message.body.get_field(tag::UNDERLYING_COUNTRY_OF_ISSUE, &mut fld.0)?;
478        Ok(fld.value().to_string())
479    }
480
481
482    /// Returns true if `UnderlyingCountryOfIssue` is present, Tag 592.
483    pub fn has_underlying_country_of_issue(&self) -> bool {
484        self.message.body.has(tag::UNDERLYING_COUNTRY_OF_ISSUE)
485    }
486
487
488
489
490    /// Sets `UnderlyingCouponPaymentDate`, Tag 241.
491    pub fn set_underlying_coupon_payment_date(&mut self, v: String) {
492        self.message.body.set_field(tag::UNDERLYING_COUPON_PAYMENT_DATE, FIXString::from(v));
493    }
494
495    /// Gets `UnderlyingCouponPaymentDate`, Tag 241.
496    pub fn get_underlying_coupon_payment_date(&self) -> Result<String, MessageRejectErrorEnum> {
497        let mut fld = field::UnderlyingCouponPaymentDateField::new(String::new());
498        self.message.body.get_field(tag::UNDERLYING_COUPON_PAYMENT_DATE, &mut fld.0)?;
499        Ok(fld.value().to_string())
500    }
501
502
503    /// Returns true if `UnderlyingCouponPaymentDate` is present, Tag 241.
504    pub fn has_underlying_coupon_payment_date(&self) -> bool {
505        self.message.body.has(tag::UNDERLYING_COUPON_PAYMENT_DATE)
506    }
507
508
509
510
511    /// Sets `UnderlyingCouponRate`, Tag 435.
512    pub fn set_underlying_coupon_rate(&mut self, val: Decimal, scale: i32) {
513        self.message.body.set_field(tag::UNDERLYING_COUPON_RATE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
514    }
515
516    /// Gets `UnderlyingCouponRate`, Tag 435.
517    pub fn get_underlying_coupon_rate(&self) -> Result<Decimal, MessageRejectErrorEnum> {
518        let mut fld = field::UnderlyingCouponRateField::new(Decimal::ZERO, 0);
519        self.message.body.get_field(tag::UNDERLYING_COUPON_RATE, &mut fld.0)?;
520        Ok(fld.value())
521    }
522
523
524    /// Returns true if `UnderlyingCouponRate` is present, Tag 435.
525    pub fn has_underlying_coupon_rate(&self) -> bool {
526        self.message.body.has(tag::UNDERLYING_COUPON_RATE)
527    }
528
529
530
531
532    /// Sets `UnderlyingCreditRating`, Tag 256.
533    pub fn set_underlying_credit_rating(&mut self, v: String) {
534        self.message.body.set_field(tag::UNDERLYING_CREDIT_RATING, FIXString::from(v));
535    }
536
537    /// Gets `UnderlyingCreditRating`, Tag 256.
538    pub fn get_underlying_credit_rating(&self) -> Result<String, MessageRejectErrorEnum> {
539        let mut fld = field::UnderlyingCreditRatingField::new(String::new());
540        self.message.body.get_field(tag::UNDERLYING_CREDIT_RATING, &mut fld.0)?;
541        Ok(fld.value().to_string())
542    }
543
544
545    /// Returns true if `UnderlyingCreditRating` is present, Tag 256.
546    pub fn has_underlying_credit_rating(&self) -> bool {
547        self.message.body.has(tag::UNDERLYING_CREDIT_RATING)
548    }
549
550
551
552
553    /// Sets `UnderlyingCurrency`, Tag 318.
554    pub fn set_underlying_currency(&mut self, v: String) {
555        self.message.body.set_field(tag::UNDERLYING_CURRENCY, FIXString::from(v));
556    }
557
558    /// Gets `UnderlyingCurrency`, Tag 318.
559    pub fn get_underlying_currency(&self) -> Result<String, MessageRejectErrorEnum> {
560        let mut fld = field::UnderlyingCurrencyField::new(String::new());
561        self.message.body.get_field(tag::UNDERLYING_CURRENCY, &mut fld.0)?;
562        Ok(fld.value().to_string())
563    }
564
565
566    /// Returns true if `UnderlyingCurrency` is present, Tag 318.
567    pub fn has_underlying_currency(&self) -> bool {
568        self.message.body.has(tag::UNDERLYING_CURRENCY)
569    }
570
571
572
573
574    /// Sets `UnderlyingCurrentValue`, Tag 885.
575    pub fn set_underlying_current_value(&mut self, val: Decimal, scale: i32) {
576        self.message.body.set_field(tag::UNDERLYING_CURRENT_VALUE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
577    }
578
579    /// Gets `UnderlyingCurrentValue`, Tag 885.
580    pub fn get_underlying_current_value(&self) -> Result<Decimal, MessageRejectErrorEnum> {
581        let mut fld = field::UnderlyingCurrentValueField::new(Decimal::ZERO, 0);
582        self.message.body.get_field(tag::UNDERLYING_CURRENT_VALUE, &mut fld.0)?;
583        Ok(fld.value())
584    }
585
586
587    /// Returns true if `UnderlyingCurrentValue` is present, Tag 885.
588    pub fn has_underlying_current_value(&self) -> bool {
589        self.message.body.has(tag::UNDERLYING_CURRENT_VALUE)
590    }
591
592
593
594
595    /// Sets `UnderlyingDirtyPrice`, Tag 882.
596    pub fn set_underlying_dirty_price(&mut self, val: Decimal, scale: i32) {
597        self.message.body.set_field(tag::UNDERLYING_DIRTY_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
598    }
599
600    /// Gets `UnderlyingDirtyPrice`, Tag 882.
601    pub fn get_underlying_dirty_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
602        let mut fld = field::UnderlyingDirtyPriceField::new(Decimal::ZERO, 0);
603        self.message.body.get_field(tag::UNDERLYING_DIRTY_PRICE, &mut fld.0)?;
604        Ok(fld.value())
605    }
606
607
608    /// Returns true if `UnderlyingDirtyPrice` is present, Tag 882.
609    pub fn has_underlying_dirty_price(&self) -> bool {
610        self.message.body.has(tag::UNDERLYING_DIRTY_PRICE)
611    }
612
613
614
615
616    /// Sets `UnderlyingEndPrice`, Tag 883.
617    pub fn set_underlying_end_price(&mut self, val: Decimal, scale: i32) {
618        self.message.body.set_field(tag::UNDERLYING_END_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
619    }
620
621    /// Gets `UnderlyingEndPrice`, Tag 883.
622    pub fn get_underlying_end_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
623        let mut fld = field::UnderlyingEndPriceField::new(Decimal::ZERO, 0);
624        self.message.body.get_field(tag::UNDERLYING_END_PRICE, &mut fld.0)?;
625        Ok(fld.value())
626    }
627
628
629    /// Returns true if `UnderlyingEndPrice` is present, Tag 883.
630    pub fn has_underlying_end_price(&self) -> bool {
631        self.message.body.has(tag::UNDERLYING_END_PRICE)
632    }
633
634
635
636
637    /// Sets `UnderlyingEndValue`, Tag 886.
638    pub fn set_underlying_end_value(&mut self, val: Decimal, scale: i32) {
639        self.message.body.set_field(tag::UNDERLYING_END_VALUE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
640    }
641
642    /// Gets `UnderlyingEndValue`, Tag 886.
643    pub fn get_underlying_end_value(&self) -> Result<Decimal, MessageRejectErrorEnum> {
644        let mut fld = field::UnderlyingEndValueField::new(Decimal::ZERO, 0);
645        self.message.body.get_field(tag::UNDERLYING_END_VALUE, &mut fld.0)?;
646        Ok(fld.value())
647    }
648
649
650    /// Returns true if `UnderlyingEndValue` is present, Tag 886.
651    pub fn has_underlying_end_value(&self) -> bool {
652        self.message.body.has(tag::UNDERLYING_END_VALUE)
653    }
654
655
656
657
658    /// Sets `UnderlyingFactor`, Tag 246.
659    pub fn set_underlying_factor(&mut self, val: Decimal, scale: i32) {
660        self.message.body.set_field(tag::UNDERLYING_FACTOR, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
661    }
662
663    /// Gets `UnderlyingFactor`, Tag 246.
664    pub fn get_underlying_factor(&self) -> Result<Decimal, MessageRejectErrorEnum> {
665        let mut fld = field::UnderlyingFactorField::new(Decimal::ZERO, 0);
666        self.message.body.get_field(tag::UNDERLYING_FACTOR, &mut fld.0)?;
667        Ok(fld.value())
668    }
669
670
671    /// Returns true if `UnderlyingFactor` is present, Tag 246.
672    pub fn has_underlying_factor(&self) -> bool {
673        self.message.body.has(tag::UNDERLYING_FACTOR)
674    }
675
676
677
678
679    /// Sets `UnderlyingInstrRegistry`, Tag 595.
680    pub fn set_underlying_instr_registry(&mut self, v: String) {
681        self.message.body.set_field(tag::UNDERLYING_INSTR_REGISTRY, FIXString::from(v));
682    }
683
684    /// Gets `UnderlyingInstrRegistry`, Tag 595.
685    pub fn get_underlying_instr_registry(&self) -> Result<String, MessageRejectErrorEnum> {
686        let mut fld = field::UnderlyingInstrRegistryField::new(String::new());
687        self.message.body.get_field(tag::UNDERLYING_INSTR_REGISTRY, &mut fld.0)?;
688        Ok(fld.value().to_string())
689    }
690
691
692    /// Returns true if `UnderlyingInstrRegistry` is present, Tag 595.
693    pub fn has_underlying_instr_registry(&self) -> bool {
694        self.message.body.has(tag::UNDERLYING_INSTR_REGISTRY)
695    }
696
697
698
699
700    /// Sets `UnderlyingIssueDate`, Tag 242.
701    pub fn set_underlying_issue_date(&mut self, v: String) {
702        self.message.body.set_field(tag::UNDERLYING_ISSUE_DATE, FIXString::from(v));
703    }
704
705    /// Gets `UnderlyingIssueDate`, Tag 242.
706    pub fn get_underlying_issue_date(&self) -> Result<String, MessageRejectErrorEnum> {
707        let mut fld = field::UnderlyingIssueDateField::new(String::new());
708        self.message.body.get_field(tag::UNDERLYING_ISSUE_DATE, &mut fld.0)?;
709        Ok(fld.value().to_string())
710    }
711
712
713    /// Returns true if `UnderlyingIssueDate` is present, Tag 242.
714    pub fn has_underlying_issue_date(&self) -> bool {
715        self.message.body.has(tag::UNDERLYING_ISSUE_DATE)
716    }
717
718
719
720
721    /// Sets `UnderlyingIssuer`, Tag 306.
722    pub fn set_underlying_issuer(&mut self, v: String) {
723        self.message.body.set_field(tag::UNDERLYING_ISSUER, FIXString::from(v));
724    }
725
726    /// Gets `UnderlyingIssuer`, Tag 306.
727    pub fn get_underlying_issuer(&self) -> Result<String, MessageRejectErrorEnum> {
728        let mut fld = field::UnderlyingIssuerField::new(String::new());
729        self.message.body.get_field(tag::UNDERLYING_ISSUER, &mut fld.0)?;
730        Ok(fld.value().to_string())
731    }
732
733
734    /// Returns true if `UnderlyingIssuer` is present, Tag 306.
735    pub fn has_underlying_issuer(&self) -> bool {
736        self.message.body.has(tag::UNDERLYING_ISSUER)
737    }
738
739
740
741
742    /// Sets `UnderlyingLocaleOfIssue`, Tag 594.
743    pub fn set_underlying_locale_of_issue(&mut self, v: String) {
744        self.message.body.set_field(tag::UNDERLYING_LOCALE_OF_ISSUE, FIXString::from(v));
745    }
746
747    /// Gets `UnderlyingLocaleOfIssue`, Tag 594.
748    pub fn get_underlying_locale_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
749        let mut fld = field::UnderlyingLocaleOfIssueField::new(String::new());
750        self.message.body.get_field(tag::UNDERLYING_LOCALE_OF_ISSUE, &mut fld.0)?;
751        Ok(fld.value().to_string())
752    }
753
754
755    /// Returns true if `UnderlyingLocaleOfIssue` is present, Tag 594.
756    pub fn has_underlying_locale_of_issue(&self) -> bool {
757        self.message.body.has(tag::UNDERLYING_LOCALE_OF_ISSUE)
758    }
759
760
761
762
763    /// Sets `UnderlyingMaturityDate`, Tag 542.
764    pub fn set_underlying_maturity_date(&mut self, v: String) {
765        self.message.body.set_field(tag::UNDERLYING_MATURITY_DATE, FIXString::from(v));
766    }
767
768    /// Gets `UnderlyingMaturityDate`, Tag 542.
769    pub fn get_underlying_maturity_date(&self) -> Result<String, MessageRejectErrorEnum> {
770        let mut fld = field::UnderlyingMaturityDateField::new(String::new());
771        self.message.body.get_field(tag::UNDERLYING_MATURITY_DATE, &mut fld.0)?;
772        Ok(fld.value().to_string())
773    }
774
775
776    /// Returns true if `UnderlyingMaturityDate` is present, Tag 542.
777    pub fn has_underlying_maturity_date(&self) -> bool {
778        self.message.body.has(tag::UNDERLYING_MATURITY_DATE)
779    }
780
781
782
783
784    /// Sets `UnderlyingMaturityMonthYear`, Tag 313.
785    pub fn set_underlying_maturity_month_year(&mut self, v: String) {
786        self.message.body.set_field(tag::UNDERLYING_MATURITY_MONTH_YEAR, FIXString::from(v));
787    }
788
789    /// Gets `UnderlyingMaturityMonthYear`, Tag 313.
790    pub fn get_underlying_maturity_month_year(&self) -> Result<String, MessageRejectErrorEnum> {
791        let mut fld = field::UnderlyingMaturityMonthYearField::new(String::new());
792        self.message.body.get_field(tag::UNDERLYING_MATURITY_MONTH_YEAR, &mut fld.0)?;
793        Ok(fld.value().to_string())
794    }
795
796
797    /// Returns true if `UnderlyingMaturityMonthYear` is present, Tag 313.
798    pub fn has_underlying_maturity_month_year(&self) -> bool {
799        self.message.body.has(tag::UNDERLYING_MATURITY_MONTH_YEAR)
800    }
801
802
803
804
805    /// Sets `UnderlyingOptAttribute`, Tag 317.
806    pub fn set_underlying_opt_attribute(&mut self, v: String) {
807        self.message.body.set_field(tag::UNDERLYING_OPT_ATTRIBUTE, FIXString::from(v));
808    }
809
810    /// Gets `UnderlyingOptAttribute`, Tag 317.
811    pub fn get_underlying_opt_attribute(&self) -> Result<String, MessageRejectErrorEnum> {
812        let mut fld = field::UnderlyingOptAttributeField::new(String::new());
813        self.message.body.get_field(tag::UNDERLYING_OPT_ATTRIBUTE, &mut fld.0)?;
814        Ok(fld.value().to_string())
815    }
816
817
818    /// Returns true if `UnderlyingOptAttribute` is present, Tag 317.
819    pub fn has_underlying_opt_attribute(&self) -> bool {
820        self.message.body.has(tag::UNDERLYING_OPT_ATTRIBUTE)
821    }
822
823
824
825
826    /// Sets `UnderlyingProduct`, Tag 462.
827    pub fn set_underlying_product(&mut self, v: isize) {
828        self.message.body.set_field(tag::UNDERLYING_PRODUCT, fixer::fix_int::FIXInt::from(v));
829    }
830
831    /// Gets `UnderlyingProduct`, Tag 462.
832    pub fn get_underlying_product(&self) -> Result<isize, MessageRejectErrorEnum> {
833        let mut fld = field::UnderlyingProductField::new(0);
834        self.message.body.get_field(tag::UNDERLYING_PRODUCT, &mut fld.0)?;
835        Ok(fld.value())
836    }
837
838
839    /// Returns true if `UnderlyingProduct` is present, Tag 462.
840    pub fn has_underlying_product(&self) -> bool {
841        self.message.body.has(tag::UNDERLYING_PRODUCT)
842    }
843
844
845
846
847    /// Sets `UnderlyingPx`, Tag 810.
848    pub fn set_underlying_px(&mut self, val: Decimal, scale: i32) {
849        self.message.body.set_field(tag::UNDERLYING_PX, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
850    }
851
852    /// Gets `UnderlyingPx`, Tag 810.
853    pub fn get_underlying_px(&self) -> Result<Decimal, MessageRejectErrorEnum> {
854        let mut fld = field::UnderlyingPxField::new(Decimal::ZERO, 0);
855        self.message.body.get_field(tag::UNDERLYING_PX, &mut fld.0)?;
856        Ok(fld.value())
857    }
858
859
860    /// Returns true if `UnderlyingPx` is present, Tag 810.
861    pub fn has_underlying_px(&self) -> bool {
862        self.message.body.has(tag::UNDERLYING_PX)
863    }
864
865
866
867
868    /// Sets `UnderlyingQty`, Tag 879.
869    pub fn set_underlying_qty(&mut self, val: Decimal, scale: i32) {
870        self.message.body.set_field(tag::UNDERLYING_QTY, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
871    }
872
873    /// Gets `UnderlyingQty`, Tag 879.
874    pub fn get_underlying_qty(&self) -> Result<Decimal, MessageRejectErrorEnum> {
875        let mut fld = field::UnderlyingQtyField::new(Decimal::ZERO, 0);
876        self.message.body.get_field(tag::UNDERLYING_QTY, &mut fld.0)?;
877        Ok(fld.value())
878    }
879
880
881    /// Returns true if `UnderlyingQty` is present, Tag 879.
882    pub fn has_underlying_qty(&self) -> bool {
883        self.message.body.has(tag::UNDERLYING_QTY)
884    }
885
886
887
888
889    /// Sets `UnderlyingRedemptionDate`, Tag 247.
890    pub fn set_underlying_redemption_date(&mut self, v: String) {
891        self.message.body.set_field(tag::UNDERLYING_REDEMPTION_DATE, FIXString::from(v));
892    }
893
894    /// Gets `UnderlyingRedemptionDate`, Tag 247.
895    pub fn get_underlying_redemption_date(&self) -> Result<String, MessageRejectErrorEnum> {
896        let mut fld = field::UnderlyingRedemptionDateField::new(String::new());
897        self.message.body.get_field(tag::UNDERLYING_REDEMPTION_DATE, &mut fld.0)?;
898        Ok(fld.value().to_string())
899    }
900
901
902    /// Returns true if `UnderlyingRedemptionDate` is present, Tag 247.
903    pub fn has_underlying_redemption_date(&self) -> bool {
904        self.message.body.has(tag::UNDERLYING_REDEMPTION_DATE)
905    }
906
907
908
909
910    /// Sets `UnderlyingRepoCollateralSecurityType`, Tag 243.
911    pub fn set_underlying_repo_collateral_security_type(&mut self, v: isize) {
912        self.message.body.set_field(tag::UNDERLYING_REPO_COLLATERAL_SECURITY_TYPE, fixer::fix_int::FIXInt::from(v));
913    }
914
915    /// Gets `UnderlyingRepoCollateralSecurityType`, Tag 243.
916    pub fn get_underlying_repo_collateral_security_type(&self) -> Result<isize, MessageRejectErrorEnum> {
917        let mut fld = field::UnderlyingRepoCollateralSecurityTypeField::new(0);
918        self.message.body.get_field(tag::UNDERLYING_REPO_COLLATERAL_SECURITY_TYPE, &mut fld.0)?;
919        Ok(fld.value())
920    }
921
922
923    /// Returns true if `UnderlyingRepoCollateralSecurityType` is present, Tag 243.
924    pub fn has_underlying_repo_collateral_security_type(&self) -> bool {
925        self.message.body.has(tag::UNDERLYING_REPO_COLLATERAL_SECURITY_TYPE)
926    }
927
928
929
930
931    /// Sets `UnderlyingRepurchaseRate`, Tag 245.
932    pub fn set_underlying_repurchase_rate(&mut self, val: Decimal, scale: i32) {
933        self.message.body.set_field(tag::UNDERLYING_REPURCHASE_RATE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
934    }
935
936    /// Gets `UnderlyingRepurchaseRate`, Tag 245.
937    pub fn get_underlying_repurchase_rate(&self) -> Result<Decimal, MessageRejectErrorEnum> {
938        let mut fld = field::UnderlyingRepurchaseRateField::new(Decimal::ZERO, 0);
939        self.message.body.get_field(tag::UNDERLYING_REPURCHASE_RATE, &mut fld.0)?;
940        Ok(fld.value())
941    }
942
943
944    /// Returns true if `UnderlyingRepurchaseRate` is present, Tag 245.
945    pub fn has_underlying_repurchase_rate(&self) -> bool {
946        self.message.body.has(tag::UNDERLYING_REPURCHASE_RATE)
947    }
948
949
950
951
952    /// Sets `UnderlyingRepurchaseTerm`, Tag 244.
953    pub fn set_underlying_repurchase_term(&mut self, v: isize) {
954        self.message.body.set_field(tag::UNDERLYING_REPURCHASE_TERM, fixer::fix_int::FIXInt::from(v));
955    }
956
957    /// Gets `UnderlyingRepurchaseTerm`, Tag 244.
958    pub fn get_underlying_repurchase_term(&self) -> Result<isize, MessageRejectErrorEnum> {
959        let mut fld = field::UnderlyingRepurchaseTermField::new(0);
960        self.message.body.get_field(tag::UNDERLYING_REPURCHASE_TERM, &mut fld.0)?;
961        Ok(fld.value())
962    }
963
964
965    /// Returns true if `UnderlyingRepurchaseTerm` is present, Tag 244.
966    pub fn has_underlying_repurchase_term(&self) -> bool {
967        self.message.body.has(tag::UNDERLYING_REPURCHASE_TERM)
968    }
969
970
971
972
973    /// Sets `UnderlyingSecurityDesc`, Tag 307.
974    pub fn set_underlying_security_desc(&mut self, v: String) {
975        self.message.body.set_field(tag::UNDERLYING_SECURITY_DESC, FIXString::from(v));
976    }
977
978    /// Gets `UnderlyingSecurityDesc`, Tag 307.
979    pub fn get_underlying_security_desc(&self) -> Result<String, MessageRejectErrorEnum> {
980        let mut fld = field::UnderlyingSecurityDescField::new(String::new());
981        self.message.body.get_field(tag::UNDERLYING_SECURITY_DESC, &mut fld.0)?;
982        Ok(fld.value().to_string())
983    }
984
985
986    /// Returns true if `UnderlyingSecurityDesc` is present, Tag 307.
987    pub fn has_underlying_security_desc(&self) -> bool {
988        self.message.body.has(tag::UNDERLYING_SECURITY_DESC)
989    }
990
991
992
993
994    /// Sets `UnderlyingSecurityExchange`, Tag 308.
995    pub fn set_underlying_security_exchange(&mut self, v: String) {
996        self.message.body.set_field(tag::UNDERLYING_SECURITY_EXCHANGE, FIXString::from(v));
997    }
998
999    /// Gets `UnderlyingSecurityExchange`, Tag 308.
1000    pub fn get_underlying_security_exchange(&self) -> Result<String, MessageRejectErrorEnum> {
1001        let mut fld = field::UnderlyingSecurityExchangeField::new(String::new());
1002        self.message.body.get_field(tag::UNDERLYING_SECURITY_EXCHANGE, &mut fld.0)?;
1003        Ok(fld.value().to_string())
1004    }
1005
1006
1007    /// Returns true if `UnderlyingSecurityExchange` is present, Tag 308.
1008    pub fn has_underlying_security_exchange(&self) -> bool {
1009        self.message.body.has(tag::UNDERLYING_SECURITY_EXCHANGE)
1010    }
1011
1012
1013
1014
1015    /// Sets `UnderlyingSecurityID`, Tag 309.
1016    pub fn set_underlying_security_id(&mut self, v: String) {
1017        self.message.body.set_field(tag::UNDERLYING_SECURITY_ID, FIXString::from(v));
1018    }
1019
1020    /// Gets `UnderlyingSecurityID`, Tag 309.
1021    pub fn get_underlying_security_id(&self) -> Result<String, MessageRejectErrorEnum> {
1022        let mut fld = field::UnderlyingSecurityIDField::new(String::new());
1023        self.message.body.get_field(tag::UNDERLYING_SECURITY_ID, &mut fld.0)?;
1024        Ok(fld.value().to_string())
1025    }
1026
1027
1028    /// Returns true if `UnderlyingSecurityID` is present, Tag 309.
1029    pub fn has_underlying_security_id(&self) -> bool {
1030        self.message.body.has(tag::UNDERLYING_SECURITY_ID)
1031    }
1032
1033
1034
1035
1036    /// Sets `UnderlyingSecurityIDSource`, Tag 305.
1037    pub fn set_underlying_security_id_source(&mut self, v: String) {
1038        self.message.body.set_field(tag::UNDERLYING_SECURITY_ID_SOURCE, FIXString::from(v));
1039    }
1040
1041    /// Gets `UnderlyingSecurityIDSource`, Tag 305.
1042    pub fn get_underlying_security_id_source(&self) -> Result<String, MessageRejectErrorEnum> {
1043        let mut fld = field::UnderlyingSecurityIDSourceField::new(String::new());
1044        self.message.body.get_field(tag::UNDERLYING_SECURITY_ID_SOURCE, &mut fld.0)?;
1045        Ok(fld.value().to_string())
1046    }
1047
1048
1049    /// Returns true if `UnderlyingSecurityIDSource` is present, Tag 305.
1050    pub fn has_underlying_security_id_source(&self) -> bool {
1051        self.message.body.has(tag::UNDERLYING_SECURITY_ID_SOURCE)
1052    }
1053
1054
1055
1056
1057    /// Sets `UnderlyingSecuritySubType`, Tag 763.
1058    pub fn set_underlying_security_sub_type(&mut self, v: String) {
1059        self.message.body.set_field(tag::UNDERLYING_SECURITY_SUB_TYPE, FIXString::from(v));
1060    }
1061
1062    /// Gets `UnderlyingSecuritySubType`, Tag 763.
1063    pub fn get_underlying_security_sub_type(&self) -> Result<String, MessageRejectErrorEnum> {
1064        let mut fld = field::UnderlyingSecuritySubTypeField::new(String::new());
1065        self.message.body.get_field(tag::UNDERLYING_SECURITY_SUB_TYPE, &mut fld.0)?;
1066        Ok(fld.value().to_string())
1067    }
1068
1069
1070    /// Returns true if `UnderlyingSecuritySubType` is present, Tag 763.
1071    pub fn has_underlying_security_sub_type(&self) -> bool {
1072        self.message.body.has(tag::UNDERLYING_SECURITY_SUB_TYPE)
1073    }
1074
1075
1076
1077
1078    /// Sets `UnderlyingSecurityType`, Tag 310.
1079    pub fn set_underlying_security_type(&mut self, v: String) {
1080        self.message.body.set_field(tag::UNDERLYING_SECURITY_TYPE, FIXString::from(v));
1081    }
1082
1083    /// Gets `UnderlyingSecurityType`, Tag 310.
1084    pub fn get_underlying_security_type(&self) -> Result<String, MessageRejectErrorEnum> {
1085        let mut fld = field::UnderlyingSecurityTypeField::new(String::new());
1086        self.message.body.get_field(tag::UNDERLYING_SECURITY_TYPE, &mut fld.0)?;
1087        Ok(fld.value().to_string())
1088    }
1089
1090
1091    /// Returns true if `UnderlyingSecurityType` is present, Tag 310.
1092    pub fn has_underlying_security_type(&self) -> bool {
1093        self.message.body.has(tag::UNDERLYING_SECURITY_TYPE)
1094    }
1095
1096
1097
1098
1099    /// Sets `UnderlyingStartValue`, Tag 884.
1100    pub fn set_underlying_start_value(&mut self, val: Decimal, scale: i32) {
1101        self.message.body.set_field(tag::UNDERLYING_START_VALUE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1102    }
1103
1104    /// Gets `UnderlyingStartValue`, Tag 884.
1105    pub fn get_underlying_start_value(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1106        let mut fld = field::UnderlyingStartValueField::new(Decimal::ZERO, 0);
1107        self.message.body.get_field(tag::UNDERLYING_START_VALUE, &mut fld.0)?;
1108        Ok(fld.value())
1109    }
1110
1111
1112    /// Returns true if `UnderlyingStartValue` is present, Tag 884.
1113    pub fn has_underlying_start_value(&self) -> bool {
1114        self.message.body.has(tag::UNDERLYING_START_VALUE)
1115    }
1116
1117
1118
1119
1120    /// Sets `UnderlyingStateOrProvinceOfIssue`, Tag 593.
1121    pub fn set_underlying_state_or_province_of_issue(&mut self, v: String) {
1122        self.message.body.set_field(tag::UNDERLYING_STATE_OR_PROVINCE_OF_ISSUE, FIXString::from(v));
1123    }
1124
1125    /// Gets `UnderlyingStateOrProvinceOfIssue`, Tag 593.
1126    pub fn get_underlying_state_or_province_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
1127        let mut fld = field::UnderlyingStateOrProvinceOfIssueField::new(String::new());
1128        self.message.body.get_field(tag::UNDERLYING_STATE_OR_PROVINCE_OF_ISSUE, &mut fld.0)?;
1129        Ok(fld.value().to_string())
1130    }
1131
1132
1133    /// Returns true if `UnderlyingStateOrProvinceOfIssue` is present, Tag 593.
1134    pub fn has_underlying_state_or_province_of_issue(&self) -> bool {
1135        self.message.body.has(tag::UNDERLYING_STATE_OR_PROVINCE_OF_ISSUE)
1136    }
1137
1138
1139
1140
1141    /// Sets `UnderlyingStrikeCurrency`, Tag 941.
1142    pub fn set_underlying_strike_currency(&mut self, v: String) {
1143        self.message.body.set_field(tag::UNDERLYING_STRIKE_CURRENCY, FIXString::from(v));
1144    }
1145
1146    /// Gets `UnderlyingStrikeCurrency`, Tag 941.
1147    pub fn get_underlying_strike_currency(&self) -> Result<String, MessageRejectErrorEnum> {
1148        let mut fld = field::UnderlyingStrikeCurrencyField::new(String::new());
1149        self.message.body.get_field(tag::UNDERLYING_STRIKE_CURRENCY, &mut fld.0)?;
1150        Ok(fld.value().to_string())
1151    }
1152
1153
1154    /// Returns true if `UnderlyingStrikeCurrency` is present, Tag 941.
1155    pub fn has_underlying_strike_currency(&self) -> bool {
1156        self.message.body.has(tag::UNDERLYING_STRIKE_CURRENCY)
1157    }
1158
1159
1160
1161
1162    /// Sets `UnderlyingStrikePrice`, Tag 316.
1163    pub fn set_underlying_strike_price(&mut self, val: Decimal, scale: i32) {
1164        self.message.body.set_field(tag::UNDERLYING_STRIKE_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1165    }
1166
1167    /// Gets `UnderlyingStrikePrice`, Tag 316.
1168    pub fn get_underlying_strike_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1169        let mut fld = field::UnderlyingStrikePriceField::new(Decimal::ZERO, 0);
1170        self.message.body.get_field(tag::UNDERLYING_STRIKE_PRICE, &mut fld.0)?;
1171        Ok(fld.value())
1172    }
1173
1174
1175    /// Returns true if `UnderlyingStrikePrice` is present, Tag 316.
1176    pub fn has_underlying_strike_price(&self) -> bool {
1177        self.message.body.has(tag::UNDERLYING_STRIKE_PRICE)
1178    }
1179
1180
1181
1182
1183    /// Sets `UnderlyingSymbol`, Tag 311.
1184    pub fn set_underlying_symbol(&mut self, v: String) {
1185        self.message.body.set_field(tag::UNDERLYING_SYMBOL, FIXString::from(v));
1186    }
1187
1188    /// Gets `UnderlyingSymbol`, Tag 311.
1189    pub fn get_underlying_symbol(&self) -> Result<String, MessageRejectErrorEnum> {
1190        let mut fld = field::UnderlyingSymbolField::new(String::new());
1191        self.message.body.get_field(tag::UNDERLYING_SYMBOL, &mut fld.0)?;
1192        Ok(fld.value().to_string())
1193    }
1194
1195
1196    /// Returns true if `UnderlyingSymbol` is present, Tag 311.
1197    pub fn has_underlying_symbol(&self) -> bool {
1198        self.message.body.has(tag::UNDERLYING_SYMBOL)
1199    }
1200
1201
1202
1203
1204    /// Sets `UnderlyingSymbolSfx`, Tag 312.
1205    pub fn set_underlying_symbol_sfx(&mut self, v: String) {
1206        self.message.body.set_field(tag::UNDERLYING_SYMBOL_SFX, FIXString::from(v));
1207    }
1208
1209    /// Gets `UnderlyingSymbolSfx`, Tag 312.
1210    pub fn get_underlying_symbol_sfx(&self) -> Result<String, MessageRejectErrorEnum> {
1211        let mut fld = field::UnderlyingSymbolSfxField::new(String::new());
1212        self.message.body.get_field(tag::UNDERLYING_SYMBOL_SFX, &mut fld.0)?;
1213        Ok(fld.value().to_string())
1214    }
1215
1216
1217    /// Returns true if `UnderlyingSymbolSfx` is present, Tag 312.
1218    pub fn has_underlying_symbol_sfx(&self) -> bool {
1219        self.message.body.has(tag::UNDERLYING_SYMBOL_SFX)
1220    }
1221
1222
1223}
1224
1225/// `RouteOut` is the callback type for routing `DerivativeSecurityListRequest` messages.
1226pub type RouteOut = fn(msg: DerivativeSecurityListRequest, session_id: SessionID) -> Result<(), MessageRejectErrorEnum>;
1227
1228/// Route type returned by the `route` function.
1229pub type Route = (&'static str, &'static str, Box<dyn Fn(&Message, SessionID) -> Result<(), MessageRejectErrorEnum> + Send>);
1230
1231/// Returns the begin string, message type, and route function for `DerivativeSecurityListRequest`.
1232pub fn route(router: RouteOut) -> Route {
1233    let r = move |msg: &Message, session_id: SessionID| -> Result<(), MessageRejectErrorEnum> {
1234        router(DerivativeSecurityListRequest::from_message(msg.clone()), session_id)
1235    };
1236    ("FIX.4.4", "z", Box::new(r))
1237}