1#![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 jiff::Timestamp;
16
17use crate::field;
18use crate::tag;
19
20pub struct SecurityStatus {
22 pub message: Message,
23}
24
25impl SecurityStatus {
26 pub fn new() -> Self {
28 let mut msg = Message::new();
29 msg.header.set_field(tag::MSG_TYPE, FIXString::from("f".to_string()));
30
31 Self { message: msg }
32 }
33
34 pub fn from_message(msg: Message) -> Self {
36 Self { message: msg }
37 }
38
39 pub fn to_message(self) -> Message {
41 self.message
42 }
43
44
45
46
47 pub fn set_adjustment(&mut self, v: isize) {
49 self.message.body.set_field(tag::ADJUSTMENT, fixer::fix_int::FIXInt::from(v));
50 }
51
52 pub fn get_adjustment(&self) -> Result<isize, MessageRejectErrorEnum> {
54 let mut fld = field::AdjustmentField::new(0);
55 self.message.body.get_field(tag::ADJUSTMENT, &mut fld.0)?;
56 Ok(fld.value())
57 }
58
59
60 pub fn has_adjustment(&self) -> bool {
62 self.message.body.has(tag::ADJUSTMENT)
63 }
64
65
66
67
68 pub fn set_appl_id(&mut self, v: String) {
70 self.message.body.set_field(tag::APPL_ID, FIXString::from(v));
71 }
72
73 pub fn get_appl_id(&self) -> Result<String, MessageRejectErrorEnum> {
75 let mut fld = field::ApplIDField::new(String::new());
76 self.message.body.get_field(tag::APPL_ID, &mut fld.0)?;
77 Ok(fld.value().to_string())
78 }
79
80
81 pub fn has_appl_id(&self) -> bool {
83 self.message.body.has(tag::APPL_ID)
84 }
85
86
87
88
89 pub fn set_appl_last_seq_num(&mut self, v: isize) {
91 self.message.body.set_field(tag::APPL_LAST_SEQ_NUM, fixer::fix_int::FIXInt::from(v));
92 }
93
94 pub fn get_appl_last_seq_num(&self) -> Result<isize, MessageRejectErrorEnum> {
96 let mut fld = field::ApplLastSeqNumField::new(0);
97 self.message.body.get_field(tag::APPL_LAST_SEQ_NUM, &mut fld.0)?;
98 Ok(fld.value())
99 }
100
101
102 pub fn has_appl_last_seq_num(&self) -> bool {
104 self.message.body.has(tag::APPL_LAST_SEQ_NUM)
105 }
106
107
108
109
110 pub fn set_appl_resend_flag(&mut self, v: bool) {
112 self.message.body.set_field(tag::APPL_RESEND_FLAG, fixer::fix_boolean::FIXBoolean::from(v));
113 }
114
115 pub fn get_appl_resend_flag(&self) -> Result<bool, MessageRejectErrorEnum> {
117 let mut fld = field::ApplResendFlagField::new(false);
118 self.message.body.get_field(tag::APPL_RESEND_FLAG, &mut fld.0)?;
119 Ok(fld.value())
120 }
121
122
123 pub fn has_appl_resend_flag(&self) -> bool {
125 self.message.body.has(tag::APPL_RESEND_FLAG)
126 }
127
128
129
130
131 pub fn set_appl_seq_num(&mut self, v: isize) {
133 self.message.body.set_field(tag::APPL_SEQ_NUM, fixer::fix_int::FIXInt::from(v));
134 }
135
136 pub fn get_appl_seq_num(&self) -> Result<isize, MessageRejectErrorEnum> {
138 let mut fld = field::ApplSeqNumField::new(0);
139 self.message.body.get_field(tag::APPL_SEQ_NUM, &mut fld.0)?;
140 Ok(fld.value())
141 }
142
143
144 pub fn has_appl_seq_num(&self) -> bool {
146 self.message.body.has(tag::APPL_SEQ_NUM)
147 }
148
149
150
151
152 pub fn set_buy_volume(&mut self, val: Decimal, scale: i32) {
154 self.message.body.set_field(tag::BUY_VOLUME, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
155 }
156
157 pub fn get_buy_volume(&self) -> Result<Decimal, MessageRejectErrorEnum> {
159 let mut fld = field::BuyVolumeField::new(Decimal::ZERO, 0);
160 self.message.body.get_field(tag::BUY_VOLUME, &mut fld.0)?;
161 Ok(fld.value())
162 }
163
164
165 pub fn has_buy_volume(&self) -> bool {
167 self.message.body.has(tag::BUY_VOLUME)
168 }
169
170
171
172
173 pub fn set_cfi_code(&mut self, v: String) {
175 self.message.body.set_field(tag::CFI_CODE, FIXString::from(v));
176 }
177
178 pub fn get_cfi_code(&self) -> Result<String, MessageRejectErrorEnum> {
180 let mut fld = field::CFICodeField::new(String::new());
181 self.message.body.get_field(tag::CFI_CODE, &mut fld.0)?;
182 Ok(fld.value().to_string())
183 }
184
185
186 pub fn has_cfi_code(&self) -> bool {
188 self.message.body.has(tag::CFI_CODE)
189 }
190
191
192
193
194 pub fn set_cp_program(&mut self, v: isize) {
196 self.message.body.set_field(tag::CP_PROGRAM, fixer::fix_int::FIXInt::from(v));
197 }
198
199 pub fn get_cp_program(&self) -> Result<isize, MessageRejectErrorEnum> {
201 let mut fld = field::CPProgramField::new(0);
202 self.message.body.get_field(tag::CP_PROGRAM, &mut fld.0)?;
203 Ok(fld.value())
204 }
205
206
207 pub fn has_cp_program(&self) -> bool {
209 self.message.body.has(tag::CP_PROGRAM)
210 }
211
212
213
214
215 pub fn set_cp_reg_type(&mut self, v: String) {
217 self.message.body.set_field(tag::CP_REG_TYPE, FIXString::from(v));
218 }
219
220 pub fn get_cp_reg_type(&self) -> Result<String, MessageRejectErrorEnum> {
222 let mut fld = field::CPRegTypeField::new(String::new());
223 self.message.body.get_field(tag::CP_REG_TYPE, &mut fld.0)?;
224 Ok(fld.value().to_string())
225 }
226
227
228 pub fn has_cp_reg_type(&self) -> bool {
230 self.message.body.has(tag::CP_REG_TYPE)
231 }
232
233
234
235
236 pub fn set_cap_price(&mut self, val: Decimal, scale: i32) {
238 self.message.body.set_field(tag::CAP_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
239 }
240
241 pub fn get_cap_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
243 let mut fld = field::CapPriceField::new(Decimal::ZERO, 0);
244 self.message.body.get_field(tag::CAP_PRICE, &mut fld.0)?;
245 Ok(fld.value())
246 }
247
248
249 pub fn has_cap_price(&self) -> bool {
251 self.message.body.has(tag::CAP_PRICE)
252 }
253
254
255
256
257 pub fn set_contract_multiplier(&mut self, val: Decimal, scale: i32) {
259 self.message.body.set_field(tag::CONTRACT_MULTIPLIER, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
260 }
261
262 pub fn get_contract_multiplier(&self) -> Result<Decimal, MessageRejectErrorEnum> {
264 let mut fld = field::ContractMultiplierField::new(Decimal::ZERO, 0);
265 self.message.body.get_field(tag::CONTRACT_MULTIPLIER, &mut fld.0)?;
266 Ok(fld.value())
267 }
268
269
270 pub fn has_contract_multiplier(&self) -> bool {
272 self.message.body.has(tag::CONTRACT_MULTIPLIER)
273 }
274
275
276
277
278 pub fn set_contract_settl_month(&mut self, v: String) {
280 self.message.body.set_field(tag::CONTRACT_SETTL_MONTH, FIXString::from(v));
281 }
282
283 pub fn get_contract_settl_month(&self) -> Result<String, MessageRejectErrorEnum> {
285 let mut fld = field::ContractSettlMonthField::new(String::new());
286 self.message.body.get_field(tag::CONTRACT_SETTL_MONTH, &mut fld.0)?;
287 Ok(fld.value().to_string())
288 }
289
290
291 pub fn has_contract_settl_month(&self) -> bool {
293 self.message.body.has(tag::CONTRACT_SETTL_MONTH)
294 }
295
296
297
298
299 pub fn set_corporate_action(&mut self, v: String) {
301 self.message.body.set_field(tag::CORPORATE_ACTION, FIXString::from(v));
302 }
303
304 pub fn get_corporate_action(&self) -> Result<String, MessageRejectErrorEnum> {
306 let mut fld = field::CorporateActionField::new(String::new());
307 self.message.body.get_field(tag::CORPORATE_ACTION, &mut fld.0)?;
308 Ok(fld.value().to_string())
309 }
310
311
312 pub fn has_corporate_action(&self) -> bool {
314 self.message.body.has(tag::CORPORATE_ACTION)
315 }
316
317
318
319
320 pub fn set_country_of_issue(&mut self, v: String) {
322 self.message.body.set_field(tag::COUNTRY_OF_ISSUE, FIXString::from(v));
323 }
324
325 pub fn get_country_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
327 let mut fld = field::CountryOfIssueField::new(String::new());
328 self.message.body.get_field(tag::COUNTRY_OF_ISSUE, &mut fld.0)?;
329 Ok(fld.value().to_string())
330 }
331
332
333 pub fn has_country_of_issue(&self) -> bool {
335 self.message.body.has(tag::COUNTRY_OF_ISSUE)
336 }
337
338
339
340
341 pub fn set_coupon_payment_date(&mut self, v: String) {
343 self.message.body.set_field(tag::COUPON_PAYMENT_DATE, FIXString::from(v));
344 }
345
346 pub fn get_coupon_payment_date(&self) -> Result<String, MessageRejectErrorEnum> {
348 let mut fld = field::CouponPaymentDateField::new(String::new());
349 self.message.body.get_field(tag::COUPON_PAYMENT_DATE, &mut fld.0)?;
350 Ok(fld.value().to_string())
351 }
352
353
354 pub fn has_coupon_payment_date(&self) -> bool {
356 self.message.body.has(tag::COUPON_PAYMENT_DATE)
357 }
358
359
360
361
362 pub fn set_coupon_rate(&mut self, val: Decimal, scale: i32) {
364 self.message.body.set_field(tag::COUPON_RATE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
365 }
366
367 pub fn get_coupon_rate(&self) -> Result<Decimal, MessageRejectErrorEnum> {
369 let mut fld = field::CouponRateField::new(Decimal::ZERO, 0);
370 self.message.body.get_field(tag::COUPON_RATE, &mut fld.0)?;
371 Ok(fld.value())
372 }
373
374
375 pub fn has_coupon_rate(&self) -> bool {
377 self.message.body.has(tag::COUPON_RATE)
378 }
379
380
381
382
383 pub fn set_credit_rating(&mut self, v: String) {
385 self.message.body.set_field(tag::CREDIT_RATING, FIXString::from(v));
386 }
387
388 pub fn get_credit_rating(&self) -> Result<String, MessageRejectErrorEnum> {
390 let mut fld = field::CreditRatingField::new(String::new());
391 self.message.body.get_field(tag::CREDIT_RATING, &mut fld.0)?;
392 Ok(fld.value().to_string())
393 }
394
395
396 pub fn has_credit_rating(&self) -> bool {
398 self.message.body.has(tag::CREDIT_RATING)
399 }
400
401
402
403
404 pub fn set_currency(&mut self, v: String) {
406 self.message.body.set_field(tag::CURRENCY, FIXString::from(v));
407 }
408
409 pub fn get_currency(&self) -> Result<String, MessageRejectErrorEnum> {
411 let mut fld = field::CurrencyField::new(String::new());
412 self.message.body.get_field(tag::CURRENCY, &mut fld.0)?;
413 Ok(fld.value().to_string())
414 }
415
416
417 pub fn has_currency(&self) -> bool {
419 self.message.body.has(tag::CURRENCY)
420 }
421
422
423
424
425 pub fn set_dated_date(&mut self, v: String) {
427 self.message.body.set_field(tag::DATED_DATE, FIXString::from(v));
428 }
429
430 pub fn get_dated_date(&self) -> Result<String, MessageRejectErrorEnum> {
432 let mut fld = field::DatedDateField::new(String::new());
433 self.message.body.get_field(tag::DATED_DATE, &mut fld.0)?;
434 Ok(fld.value().to_string())
435 }
436
437
438 pub fn has_dated_date(&self) -> bool {
440 self.message.body.has(tag::DATED_DATE)
441 }
442
443
444
445
446 pub fn set_delivery_form(&mut self, v: isize) {
448 self.message.body.set_field(tag::DELIVERY_FORM, fixer::fix_int::FIXInt::from(v));
449 }
450
451 pub fn get_delivery_form(&self) -> Result<isize, MessageRejectErrorEnum> {
453 let mut fld = field::DeliveryFormField::new(0);
454 self.message.body.get_field(tag::DELIVERY_FORM, &mut fld.0)?;
455 Ok(fld.value())
456 }
457
458
459 pub fn has_delivery_form(&self) -> bool {
461 self.message.body.has(tag::DELIVERY_FORM)
462 }
463
464
465
466
467 pub fn set_due_to_related(&mut self, v: bool) {
469 self.message.body.set_field(tag::DUE_TO_RELATED, fixer::fix_boolean::FIXBoolean::from(v));
470 }
471
472 pub fn get_due_to_related(&self) -> Result<bool, MessageRejectErrorEnum> {
474 let mut fld = field::DueToRelatedField::new(false);
475 self.message.body.get_field(tag::DUE_TO_RELATED, &mut fld.0)?;
476 Ok(fld.value())
477 }
478
479
480 pub fn has_due_to_related(&self) -> bool {
482 self.message.body.has(tag::DUE_TO_RELATED)
483 }
484
485
486
487
488 pub fn set_encoded_issuer(&mut self, v: String) {
490 self.message.body.set_field(tag::ENCODED_ISSUER, FIXString::from(v));
491 }
492
493 pub fn get_encoded_issuer(&self) -> Result<String, MessageRejectErrorEnum> {
495 let mut fld = field::EncodedIssuerField::new(String::new());
496 self.message.body.get_field(tag::ENCODED_ISSUER, &mut fld.0)?;
497 Ok(fld.value().to_string())
498 }
499
500
501 pub fn has_encoded_issuer(&self) -> bool {
503 self.message.body.has(tag::ENCODED_ISSUER)
504 }
505
506
507
508
509 pub fn set_encoded_issuer_len(&mut self, v: isize) {
511 self.message.body.set_field(tag::ENCODED_ISSUER_LEN, fixer::fix_int::FIXInt::from(v));
512 }
513
514 pub fn get_encoded_issuer_len(&self) -> Result<isize, MessageRejectErrorEnum> {
516 let mut fld = field::EncodedIssuerLenField::new(0);
517 self.message.body.get_field(tag::ENCODED_ISSUER_LEN, &mut fld.0)?;
518 Ok(fld.value())
519 }
520
521
522 pub fn has_encoded_issuer_len(&self) -> bool {
524 self.message.body.has(tag::ENCODED_ISSUER_LEN)
525 }
526
527
528
529
530 pub fn set_encoded_security_desc(&mut self, v: String) {
532 self.message.body.set_field(tag::ENCODED_SECURITY_DESC, FIXString::from(v));
533 }
534
535 pub fn get_encoded_security_desc(&self) -> Result<String, MessageRejectErrorEnum> {
537 let mut fld = field::EncodedSecurityDescField::new(String::new());
538 self.message.body.get_field(tag::ENCODED_SECURITY_DESC, &mut fld.0)?;
539 Ok(fld.value().to_string())
540 }
541
542
543 pub fn has_encoded_security_desc(&self) -> bool {
545 self.message.body.has(tag::ENCODED_SECURITY_DESC)
546 }
547
548
549
550
551 pub fn set_encoded_security_desc_len(&mut self, v: isize) {
553 self.message.body.set_field(tag::ENCODED_SECURITY_DESC_LEN, fixer::fix_int::FIXInt::from(v));
554 }
555
556 pub fn get_encoded_security_desc_len(&self) -> Result<isize, MessageRejectErrorEnum> {
558 let mut fld = field::EncodedSecurityDescLenField::new(0);
559 self.message.body.get_field(tag::ENCODED_SECURITY_DESC_LEN, &mut fld.0)?;
560 Ok(fld.value())
561 }
562
563
564 pub fn has_encoded_security_desc_len(&self) -> bool {
566 self.message.body.has(tag::ENCODED_SECURITY_DESC_LEN)
567 }
568
569
570
571
572 pub fn set_encoded_text(&mut self, v: String) {
574 self.message.body.set_field(tag::ENCODED_TEXT, FIXString::from(v));
575 }
576
577 pub fn get_encoded_text(&self) -> Result<String, MessageRejectErrorEnum> {
579 let mut fld = field::EncodedTextField::new(String::new());
580 self.message.body.get_field(tag::ENCODED_TEXT, &mut fld.0)?;
581 Ok(fld.value().to_string())
582 }
583
584
585 pub fn has_encoded_text(&self) -> bool {
587 self.message.body.has(tag::ENCODED_TEXT)
588 }
589
590
591
592
593 pub fn set_encoded_text_len(&mut self, v: isize) {
595 self.message.body.set_field(tag::ENCODED_TEXT_LEN, fixer::fix_int::FIXInt::from(v));
596 }
597
598 pub fn get_encoded_text_len(&self) -> Result<isize, MessageRejectErrorEnum> {
600 let mut fld = field::EncodedTextLenField::new(0);
601 self.message.body.get_field(tag::ENCODED_TEXT_LEN, &mut fld.0)?;
602 Ok(fld.value())
603 }
604
605
606 pub fn has_encoded_text_len(&self) -> bool {
608 self.message.body.has(tag::ENCODED_TEXT_LEN)
609 }
610
611
612
613
614 pub fn set_exercise_style(&mut self, v: isize) {
616 self.message.body.set_field(tag::EXERCISE_STYLE, fixer::fix_int::FIXInt::from(v));
617 }
618
619 pub fn get_exercise_style(&self) -> Result<isize, MessageRejectErrorEnum> {
621 let mut fld = field::ExerciseStyleField::new(0);
622 self.message.body.get_field(tag::EXERCISE_STYLE, &mut fld.0)?;
623 Ok(fld.value())
624 }
625
626
627 pub fn has_exercise_style(&self) -> bool {
629 self.message.body.has(tag::EXERCISE_STYLE)
630 }
631
632
633
634
635 pub fn set_factor(&mut self, val: Decimal, scale: i32) {
637 self.message.body.set_field(tag::FACTOR, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
638 }
639
640 pub fn get_factor(&self) -> Result<Decimal, MessageRejectErrorEnum> {
642 let mut fld = field::FactorField::new(Decimal::ZERO, 0);
643 self.message.body.get_field(tag::FACTOR, &mut fld.0)?;
644 Ok(fld.value())
645 }
646
647
648 pub fn has_factor(&self) -> bool {
650 self.message.body.has(tag::FACTOR)
651 }
652
653
654
655
656 pub fn set_financial_status(&mut self, v: String) {
658 self.message.body.set_field(tag::FINANCIAL_STATUS, FIXString::from(v));
659 }
660
661 pub fn get_financial_status(&self) -> Result<String, MessageRejectErrorEnum> {
663 let mut fld = field::FinancialStatusField::new(String::new());
664 self.message.body.get_field(tag::FINANCIAL_STATUS, &mut fld.0)?;
665 Ok(fld.value().to_string())
666 }
667
668
669 pub fn has_financial_status(&self) -> bool {
671 self.message.body.has(tag::FINANCIAL_STATUS)
672 }
673
674
675
676
677 pub fn set_first_px(&mut self, val: Decimal, scale: i32) {
679 self.message.body.set_field(tag::FIRST_PX, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
680 }
681
682 pub fn get_first_px(&self) -> Result<Decimal, MessageRejectErrorEnum> {
684 let mut fld = field::FirstPxField::new(Decimal::ZERO, 0);
685 self.message.body.get_field(tag::FIRST_PX, &mut fld.0)?;
686 Ok(fld.value())
687 }
688
689
690 pub fn has_first_px(&self) -> bool {
692 self.message.body.has(tag::FIRST_PX)
693 }
694
695
696
697
698 pub fn set_flex_product_eligibility_indicator(&mut self, v: bool) {
700 self.message.body.set_field(tag::FLEX_PRODUCT_ELIGIBILITY_INDICATOR, fixer::fix_boolean::FIXBoolean::from(v));
701 }
702
703 pub fn get_flex_product_eligibility_indicator(&self) -> Result<bool, MessageRejectErrorEnum> {
705 let mut fld = field::FlexProductEligibilityIndicatorField::new(false);
706 self.message.body.get_field(tag::FLEX_PRODUCT_ELIGIBILITY_INDICATOR, &mut fld.0)?;
707 Ok(fld.value())
708 }
709
710
711 pub fn has_flex_product_eligibility_indicator(&self) -> bool {
713 self.message.body.has(tag::FLEX_PRODUCT_ELIGIBILITY_INDICATOR)
714 }
715
716
717
718
719 pub fn set_flexible_indicator(&mut self, v: bool) {
721 self.message.body.set_field(tag::FLEXIBLE_INDICATOR, fixer::fix_boolean::FIXBoolean::from(v));
722 }
723
724 pub fn get_flexible_indicator(&self) -> Result<bool, MessageRejectErrorEnum> {
726 let mut fld = field::FlexibleIndicatorField::new(false);
727 self.message.body.get_field(tag::FLEXIBLE_INDICATOR, &mut fld.0)?;
728 Ok(fld.value())
729 }
730
731
732 pub fn has_flexible_indicator(&self) -> bool {
734 self.message.body.has(tag::FLEXIBLE_INDICATOR)
735 }
736
737
738
739
740 pub fn set_floor_price(&mut self, val: Decimal, scale: i32) {
742 self.message.body.set_field(tag::FLOOR_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
743 }
744
745 pub fn get_floor_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
747 let mut fld = field::FloorPriceField::new(Decimal::ZERO, 0);
748 self.message.body.get_field(tag::FLOOR_PRICE, &mut fld.0)?;
749 Ok(fld.value())
750 }
751
752
753 pub fn has_floor_price(&self) -> bool {
755 self.message.body.has(tag::FLOOR_PRICE)
756 }
757
758
759
760
761 pub fn set_futures_valuation_method(&mut self, v: String) {
763 self.message.body.set_field(tag::FUTURES_VALUATION_METHOD, FIXString::from(v));
764 }
765
766 pub fn get_futures_valuation_method(&self) -> Result<String, MessageRejectErrorEnum> {
768 let mut fld = field::FuturesValuationMethodField::new(String::new());
769 self.message.body.get_field(tag::FUTURES_VALUATION_METHOD, &mut fld.0)?;
770 Ok(fld.value().to_string())
771 }
772
773
774 pub fn has_futures_valuation_method(&self) -> bool {
776 self.message.body.has(tag::FUTURES_VALUATION_METHOD)
777 }
778
779
780
781
782 pub fn set_halt_reason_char(&mut self, v: String) {
784 self.message.body.set_field(tag::HALT_REASON_CHAR, FIXString::from(v));
785 }
786
787 pub fn get_halt_reason_char(&self) -> Result<String, MessageRejectErrorEnum> {
789 let mut fld = field::HaltReasonCharField::new(String::new());
790 self.message.body.get_field(tag::HALT_REASON_CHAR, &mut fld.0)?;
791 Ok(fld.value().to_string())
792 }
793
794
795 pub fn has_halt_reason_char(&self) -> bool {
797 self.message.body.has(tag::HALT_REASON_CHAR)
798 }
799
800
801
802
803 pub fn set_high_px(&mut self, val: Decimal, scale: i32) {
805 self.message.body.set_field(tag::HIGH_PX, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
806 }
807
808 pub fn get_high_px(&self) -> Result<Decimal, MessageRejectErrorEnum> {
810 let mut fld = field::HighPxField::new(Decimal::ZERO, 0);
811 self.message.body.get_field(tag::HIGH_PX, &mut fld.0)?;
812 Ok(fld.value())
813 }
814
815
816 pub fn has_high_px(&self) -> bool {
818 self.message.body.has(tag::HIGH_PX)
819 }
820
821
822
823
824 pub fn set_in_view_of_common(&mut self, v: bool) {
826 self.message.body.set_field(tag::IN_VIEW_OF_COMMON, fixer::fix_boolean::FIXBoolean::from(v));
827 }
828
829 pub fn get_in_view_of_common(&self) -> Result<bool, MessageRejectErrorEnum> {
831 let mut fld = field::InViewOfCommonField::new(false);
832 self.message.body.get_field(tag::IN_VIEW_OF_COMMON, &mut fld.0)?;
833 Ok(fld.value())
834 }
835
836
837 pub fn has_in_view_of_common(&self) -> bool {
839 self.message.body.has(tag::IN_VIEW_OF_COMMON)
840 }
841
842
843
844
845 pub fn set_instr_registry(&mut self, v: String) {
847 self.message.body.set_field(tag::INSTR_REGISTRY, FIXString::from(v));
848 }
849
850 pub fn get_instr_registry(&self) -> Result<String, MessageRejectErrorEnum> {
852 let mut fld = field::InstrRegistryField::new(String::new());
853 self.message.body.get_field(tag::INSTR_REGISTRY, &mut fld.0)?;
854 Ok(fld.value().to_string())
855 }
856
857
858 pub fn has_instr_registry(&self) -> bool {
860 self.message.body.has(tag::INSTR_REGISTRY)
861 }
862
863
864
865
866 pub fn set_instrmt_assignment_method(&mut self, v: String) {
868 self.message.body.set_field(tag::INSTRMT_ASSIGNMENT_METHOD, FIXString::from(v));
869 }
870
871 pub fn get_instrmt_assignment_method(&self) -> Result<String, MessageRejectErrorEnum> {
873 let mut fld = field::InstrmtAssignmentMethodField::new(String::new());
874 self.message.body.get_field(tag::INSTRMT_ASSIGNMENT_METHOD, &mut fld.0)?;
875 Ok(fld.value().to_string())
876 }
877
878
879 pub fn has_instrmt_assignment_method(&self) -> bool {
881 self.message.body.has(tag::INSTRMT_ASSIGNMENT_METHOD)
882 }
883
884
885
886
887 pub fn set_interest_accrual_date(&mut self, v: String) {
889 self.message.body.set_field(tag::INTEREST_ACCRUAL_DATE, FIXString::from(v));
890 }
891
892 pub fn get_interest_accrual_date(&self) -> Result<String, MessageRejectErrorEnum> {
894 let mut fld = field::InterestAccrualDateField::new(String::new());
895 self.message.body.get_field(tag::INTEREST_ACCRUAL_DATE, &mut fld.0)?;
896 Ok(fld.value().to_string())
897 }
898
899
900 pub fn has_interest_accrual_date(&self) -> bool {
902 self.message.body.has(tag::INTEREST_ACCRUAL_DATE)
903 }
904
905
906
907
908 pub fn set_issue_date(&mut self, v: String) {
910 self.message.body.set_field(tag::ISSUE_DATE, FIXString::from(v));
911 }
912
913 pub fn get_issue_date(&self) -> Result<String, MessageRejectErrorEnum> {
915 let mut fld = field::IssueDateField::new(String::new());
916 self.message.body.get_field(tag::ISSUE_DATE, &mut fld.0)?;
917 Ok(fld.value().to_string())
918 }
919
920
921 pub fn has_issue_date(&self) -> bool {
923 self.message.body.has(tag::ISSUE_DATE)
924 }
925
926
927
928
929 pub fn set_issuer(&mut self, v: String) {
931 self.message.body.set_field(tag::ISSUER, FIXString::from(v));
932 }
933
934 pub fn get_issuer(&self) -> Result<String, MessageRejectErrorEnum> {
936 let mut fld = field::IssuerField::new(String::new());
937 self.message.body.get_field(tag::ISSUER, &mut fld.0)?;
938 Ok(fld.value().to_string())
939 }
940
941
942 pub fn has_issuer(&self) -> bool {
944 self.message.body.has(tag::ISSUER)
945 }
946
947
948
949
950 pub fn set_last_px(&mut self, val: Decimal, scale: i32) {
952 self.message.body.set_field(tag::LAST_PX, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
953 }
954
955 pub fn get_last_px(&self) -> Result<Decimal, MessageRejectErrorEnum> {
957 let mut fld = field::LastPxField::new(Decimal::ZERO, 0);
958 self.message.body.get_field(tag::LAST_PX, &mut fld.0)?;
959 Ok(fld.value())
960 }
961
962
963 pub fn has_last_px(&self) -> bool {
965 self.message.body.has(tag::LAST_PX)
966 }
967
968
969
970
971 pub fn set_list_method(&mut self, v: isize) {
973 self.message.body.set_field(tag::LIST_METHOD, fixer::fix_int::FIXInt::from(v));
974 }
975
976 pub fn get_list_method(&self) -> Result<isize, MessageRejectErrorEnum> {
978 let mut fld = field::ListMethodField::new(0);
979 self.message.body.get_field(tag::LIST_METHOD, &mut fld.0)?;
980 Ok(fld.value())
981 }
982
983
984 pub fn has_list_method(&self) -> bool {
986 self.message.body.has(tag::LIST_METHOD)
987 }
988
989
990
991
992 pub fn set_locale_of_issue(&mut self, v: String) {
994 self.message.body.set_field(tag::LOCALE_OF_ISSUE, FIXString::from(v));
995 }
996
997 pub fn get_locale_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
999 let mut fld = field::LocaleOfIssueField::new(String::new());
1000 self.message.body.get_field(tag::LOCALE_OF_ISSUE, &mut fld.0)?;
1001 Ok(fld.value().to_string())
1002 }
1003
1004
1005 pub fn has_locale_of_issue(&self) -> bool {
1007 self.message.body.has(tag::LOCALE_OF_ISSUE)
1008 }
1009
1010
1011
1012
1013 pub fn set_low_px(&mut self, val: Decimal, scale: i32) {
1015 self.message.body.set_field(tag::LOW_PX, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1016 }
1017
1018 pub fn get_low_px(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1020 let mut fld = field::LowPxField::new(Decimal::ZERO, 0);
1021 self.message.body.get_field(tag::LOW_PX, &mut fld.0)?;
1022 Ok(fld.value())
1023 }
1024
1025
1026 pub fn has_low_px(&self) -> bool {
1028 self.message.body.has(tag::LOW_PX)
1029 }
1030
1031
1032
1033
1034 pub fn set_md_book_type(&mut self, v: isize) {
1036 self.message.body.set_field(tag::MD_BOOK_TYPE, fixer::fix_int::FIXInt::from(v));
1037 }
1038
1039 pub fn get_md_book_type(&self) -> Result<isize, MessageRejectErrorEnum> {
1041 let mut fld = field::MDBookTypeField::new(0);
1042 self.message.body.get_field(tag::MD_BOOK_TYPE, &mut fld.0)?;
1043 Ok(fld.value())
1044 }
1045
1046
1047 pub fn has_md_book_type(&self) -> bool {
1049 self.message.body.has(tag::MD_BOOK_TYPE)
1050 }
1051
1052
1053
1054
1055 pub fn set_market_depth(&mut self, v: isize) {
1057 self.message.body.set_field(tag::MARKET_DEPTH, fixer::fix_int::FIXInt::from(v));
1058 }
1059
1060 pub fn get_market_depth(&self) -> Result<isize, MessageRejectErrorEnum> {
1062 let mut fld = field::MarketDepthField::new(0);
1063 self.message.body.get_field(tag::MARKET_DEPTH, &mut fld.0)?;
1064 Ok(fld.value())
1065 }
1066
1067
1068 pub fn has_market_depth(&self) -> bool {
1070 self.message.body.has(tag::MARKET_DEPTH)
1071 }
1072
1073
1074
1075
1076 pub fn set_market_id(&mut self, v: String) {
1078 self.message.body.set_field(tag::MARKET_ID, FIXString::from(v));
1079 }
1080
1081 pub fn get_market_id(&self) -> Result<String, MessageRejectErrorEnum> {
1083 let mut fld = field::MarketIDField::new(String::new());
1084 self.message.body.get_field(tag::MARKET_ID, &mut fld.0)?;
1085 Ok(fld.value().to_string())
1086 }
1087
1088
1089 pub fn has_market_id(&self) -> bool {
1091 self.message.body.has(tag::MARKET_ID)
1092 }
1093
1094
1095
1096
1097 pub fn set_market_segment_id(&mut self, v: String) {
1099 self.message.body.set_field(tag::MARKET_SEGMENT_ID, FIXString::from(v));
1100 }
1101
1102 pub fn get_market_segment_id(&self) -> Result<String, MessageRejectErrorEnum> {
1104 let mut fld = field::MarketSegmentIDField::new(String::new());
1105 self.message.body.get_field(tag::MARKET_SEGMENT_ID, &mut fld.0)?;
1106 Ok(fld.value().to_string())
1107 }
1108
1109
1110 pub fn has_market_segment_id(&self) -> bool {
1112 self.message.body.has(tag::MARKET_SEGMENT_ID)
1113 }
1114
1115
1116
1117
1118 pub fn set_maturity_date(&mut self, v: String) {
1120 self.message.body.set_field(tag::MATURITY_DATE, FIXString::from(v));
1121 }
1122
1123 pub fn get_maturity_date(&self) -> Result<String, MessageRejectErrorEnum> {
1125 let mut fld = field::MaturityDateField::new(String::new());
1126 self.message.body.get_field(tag::MATURITY_DATE, &mut fld.0)?;
1127 Ok(fld.value().to_string())
1128 }
1129
1130
1131 pub fn has_maturity_date(&self) -> bool {
1133 self.message.body.has(tag::MATURITY_DATE)
1134 }
1135
1136
1137
1138
1139 pub fn set_maturity_month_year(&mut self, v: String) {
1141 self.message.body.set_field(tag::MATURITY_MONTH_YEAR, FIXString::from(v));
1142 }
1143
1144 pub fn get_maturity_month_year(&self) -> Result<String, MessageRejectErrorEnum> {
1146 let mut fld = field::MaturityMonthYearField::new(String::new());
1147 self.message.body.get_field(tag::MATURITY_MONTH_YEAR, &mut fld.0)?;
1148 Ok(fld.value().to_string())
1149 }
1150
1151
1152 pub fn has_maturity_month_year(&self) -> bool {
1154 self.message.body.has(tag::MATURITY_MONTH_YEAR)
1155 }
1156
1157
1158
1159
1160 pub fn set_maturity_time(&mut self, v: String) {
1162 self.message.body.set_field(tag::MATURITY_TIME, FIXString::from(v));
1163 }
1164
1165 pub fn get_maturity_time(&self) -> Result<String, MessageRejectErrorEnum> {
1167 let mut fld = field::MaturityTimeField::new(String::new());
1168 self.message.body.get_field(tag::MATURITY_TIME, &mut fld.0)?;
1169 Ok(fld.value().to_string())
1170 }
1171
1172
1173 pub fn has_maturity_time(&self) -> bool {
1175 self.message.body.has(tag::MATURITY_TIME)
1176 }
1177
1178
1179
1180
1181 pub fn set_min_price_increment(&mut self, val: Decimal, scale: i32) {
1183 self.message.body.set_field(tag::MIN_PRICE_INCREMENT, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1184 }
1185
1186 pub fn get_min_price_increment(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1188 let mut fld = field::MinPriceIncrementField::new(Decimal::ZERO, 0);
1189 self.message.body.get_field(tag::MIN_PRICE_INCREMENT, &mut fld.0)?;
1190 Ok(fld.value())
1191 }
1192
1193
1194 pub fn has_min_price_increment(&self) -> bool {
1196 self.message.body.has(tag::MIN_PRICE_INCREMENT)
1197 }
1198
1199
1200
1201
1202 pub fn set_min_price_increment_amount(&mut self, val: Decimal, scale: i32) {
1204 self.message.body.set_field(tag::MIN_PRICE_INCREMENT_AMOUNT, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1205 }
1206
1207 pub fn get_min_price_increment_amount(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1209 let mut fld = field::MinPriceIncrementAmountField::new(Decimal::ZERO, 0);
1210 self.message.body.get_field(tag::MIN_PRICE_INCREMENT_AMOUNT, &mut fld.0)?;
1211 Ok(fld.value())
1212 }
1213
1214
1215 pub fn has_min_price_increment_amount(&self) -> bool {
1217 self.message.body.has(tag::MIN_PRICE_INCREMENT_AMOUNT)
1218 }
1219
1220
1221
1222
1223 pub fn set_nt_position_limit(&mut self, v: isize) {
1225 self.message.body.set_field(tag::NT_POSITION_LIMIT, fixer::fix_int::FIXInt::from(v));
1226 }
1227
1228 pub fn get_nt_position_limit(&self) -> Result<isize, MessageRejectErrorEnum> {
1230 let mut fld = field::NTPositionLimitField::new(0);
1231 self.message.body.get_field(tag::NT_POSITION_LIMIT, &mut fld.0)?;
1232 Ok(fld.value())
1233 }
1234
1235
1236 pub fn has_nt_position_limit(&self) -> bool {
1238 self.message.body.has(tag::NT_POSITION_LIMIT)
1239 }
1240
1241
1242
1243
1244 pub fn set_no_events(&mut self, v: isize) {
1246 self.message.body.set_field(tag::NO_EVENTS, fixer::fix_int::FIXInt::from(v));
1247 }
1248
1249 pub fn get_no_events(&self) -> Result<isize, MessageRejectErrorEnum> {
1251 let mut fld = field::NoEventsField::new(0);
1252 self.message.body.get_field(tag::NO_EVENTS, &mut fld.0)?;
1253 Ok(fld.value())
1254 }
1255
1256
1257 pub fn has_no_events(&self) -> bool {
1259 self.message.body.has(tag::NO_EVENTS)
1260 }
1261
1262
1263
1264
1265 pub fn set_no_instr_attrib(&mut self, v: isize) {
1267 self.message.body.set_field(tag::NO_INSTR_ATTRIB, fixer::fix_int::FIXInt::from(v));
1268 }
1269
1270 pub fn get_no_instr_attrib(&self) -> Result<isize, MessageRejectErrorEnum> {
1272 let mut fld = field::NoInstrAttribField::new(0);
1273 self.message.body.get_field(tag::NO_INSTR_ATTRIB, &mut fld.0)?;
1274 Ok(fld.value())
1275 }
1276
1277
1278 pub fn has_no_instr_attrib(&self) -> bool {
1280 self.message.body.has(tag::NO_INSTR_ATTRIB)
1281 }
1282
1283
1284
1285
1286 pub fn set_no_instrument_parties(&mut self, v: isize) {
1288 self.message.body.set_field(tag::NO_INSTRUMENT_PARTIES, fixer::fix_int::FIXInt::from(v));
1289 }
1290
1291 pub fn get_no_instrument_parties(&self) -> Result<isize, MessageRejectErrorEnum> {
1293 let mut fld = field::NoInstrumentPartiesField::new(0);
1294 self.message.body.get_field(tag::NO_INSTRUMENT_PARTIES, &mut fld.0)?;
1295 Ok(fld.value())
1296 }
1297
1298
1299 pub fn has_no_instrument_parties(&self) -> bool {
1301 self.message.body.has(tag::NO_INSTRUMENT_PARTIES)
1302 }
1303
1304
1305
1306
1307 pub fn set_no_legs(&mut self, v: isize) {
1309 self.message.body.set_field(tag::NO_LEGS, fixer::fix_int::FIXInt::from(v));
1310 }
1311
1312 pub fn get_no_legs(&self) -> Result<isize, MessageRejectErrorEnum> {
1314 let mut fld = field::NoLegsField::new(0);
1315 self.message.body.get_field(tag::NO_LEGS, &mut fld.0)?;
1316 Ok(fld.value())
1317 }
1318
1319
1320 pub fn has_no_legs(&self) -> bool {
1322 self.message.body.has(tag::NO_LEGS)
1323 }
1324
1325
1326
1327
1328 pub fn set_no_security_alt_id(&mut self, v: isize) {
1330 self.message.body.set_field(tag::NO_SECURITY_ALT_ID, fixer::fix_int::FIXInt::from(v));
1331 }
1332
1333 pub fn get_no_security_alt_id(&self) -> Result<isize, MessageRejectErrorEnum> {
1335 let mut fld = field::NoSecurityAltIDField::new(0);
1336 self.message.body.get_field(tag::NO_SECURITY_ALT_ID, &mut fld.0)?;
1337 Ok(fld.value())
1338 }
1339
1340
1341 pub fn has_no_security_alt_id(&self) -> bool {
1343 self.message.body.has(tag::NO_SECURITY_ALT_ID)
1344 }
1345
1346
1347
1348
1349 pub fn set_no_underlyings(&mut self, v: isize) {
1351 self.message.body.set_field(tag::NO_UNDERLYINGS, fixer::fix_int::FIXInt::from(v));
1352 }
1353
1354 pub fn get_no_underlyings(&self) -> Result<isize, MessageRejectErrorEnum> {
1356 let mut fld = field::NoUnderlyingsField::new(0);
1357 self.message.body.get_field(tag::NO_UNDERLYINGS, &mut fld.0)?;
1358 Ok(fld.value())
1359 }
1360
1361
1362 pub fn has_no_underlyings(&self) -> bool {
1364 self.message.body.has(tag::NO_UNDERLYINGS)
1365 }
1366
1367
1368
1369
1370 pub fn set_opt_attribute(&mut self, v: String) {
1372 self.message.body.set_field(tag::OPT_ATTRIBUTE, FIXString::from(v));
1373 }
1374
1375 pub fn get_opt_attribute(&self) -> Result<String, MessageRejectErrorEnum> {
1377 let mut fld = field::OptAttributeField::new(String::new());
1378 self.message.body.get_field(tag::OPT_ATTRIBUTE, &mut fld.0)?;
1379 Ok(fld.value().to_string())
1380 }
1381
1382
1383 pub fn has_opt_attribute(&self) -> bool {
1385 self.message.body.has(tag::OPT_ATTRIBUTE)
1386 }
1387
1388
1389
1390
1391 pub fn set_opt_pay_amount(&mut self, val: Decimal, scale: i32) {
1393 self.message.body.set_field(tag::OPT_PAY_AMOUNT, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1394 }
1395
1396 pub fn get_opt_pay_amount(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1398 let mut fld = field::OptPayAmountField::new(Decimal::ZERO, 0);
1399 self.message.body.get_field(tag::OPT_PAY_AMOUNT, &mut fld.0)?;
1400 Ok(fld.value())
1401 }
1402
1403
1404 pub fn has_opt_pay_amount(&self) -> bool {
1406 self.message.body.has(tag::OPT_PAY_AMOUNT)
1407 }
1408
1409
1410
1411
1412 pub fn set_pct_at_risk(&mut self, val: Decimal, scale: i32) {
1414 self.message.body.set_field(tag::PCT_AT_RISK, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1415 }
1416
1417 pub fn get_pct_at_risk(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1419 let mut fld = field::PctAtRiskField::new(Decimal::ZERO, 0);
1420 self.message.body.get_field(tag::PCT_AT_RISK, &mut fld.0)?;
1421 Ok(fld.value())
1422 }
1423
1424
1425 pub fn has_pct_at_risk(&self) -> bool {
1427 self.message.body.has(tag::PCT_AT_RISK)
1428 }
1429
1430
1431
1432
1433 pub fn set_pool(&mut self, v: String) {
1435 self.message.body.set_field(tag::POOL, FIXString::from(v));
1436 }
1437
1438 pub fn get_pool(&self) -> Result<String, MessageRejectErrorEnum> {
1440 let mut fld = field::PoolField::new(String::new());
1441 self.message.body.get_field(tag::POOL, &mut fld.0)?;
1442 Ok(fld.value().to_string())
1443 }
1444
1445
1446 pub fn has_pool(&self) -> bool {
1448 self.message.body.has(tag::POOL)
1449 }
1450
1451
1452
1453
1454 pub fn set_position_limit(&mut self, v: isize) {
1456 self.message.body.set_field(tag::POSITION_LIMIT, fixer::fix_int::FIXInt::from(v));
1457 }
1458
1459 pub fn get_position_limit(&self) -> Result<isize, MessageRejectErrorEnum> {
1461 let mut fld = field::PositionLimitField::new(0);
1462 self.message.body.get_field(tag::POSITION_LIMIT, &mut fld.0)?;
1463 Ok(fld.value())
1464 }
1465
1466
1467 pub fn has_position_limit(&self) -> bool {
1469 self.message.body.has(tag::POSITION_LIMIT)
1470 }
1471
1472
1473
1474
1475 pub fn set_price_quote_method(&mut self, v: String) {
1477 self.message.body.set_field(tag::PRICE_QUOTE_METHOD, FIXString::from(v));
1478 }
1479
1480 pub fn get_price_quote_method(&self) -> Result<String, MessageRejectErrorEnum> {
1482 let mut fld = field::PriceQuoteMethodField::new(String::new());
1483 self.message.body.get_field(tag::PRICE_QUOTE_METHOD, &mut fld.0)?;
1484 Ok(fld.value().to_string())
1485 }
1486
1487
1488 pub fn has_price_quote_method(&self) -> bool {
1490 self.message.body.has(tag::PRICE_QUOTE_METHOD)
1491 }
1492
1493
1494
1495
1496 pub fn set_price_unit_of_measure(&mut self, v: String) {
1498 self.message.body.set_field(tag::PRICE_UNIT_OF_MEASURE, FIXString::from(v));
1499 }
1500
1501 pub fn get_price_unit_of_measure(&self) -> Result<String, MessageRejectErrorEnum> {
1503 let mut fld = field::PriceUnitOfMeasureField::new(String::new());
1504 self.message.body.get_field(tag::PRICE_UNIT_OF_MEASURE, &mut fld.0)?;
1505 Ok(fld.value().to_string())
1506 }
1507
1508
1509 pub fn has_price_unit_of_measure(&self) -> bool {
1511 self.message.body.has(tag::PRICE_UNIT_OF_MEASURE)
1512 }
1513
1514
1515
1516
1517 pub fn set_price_unit_of_measure_qty(&mut self, val: Decimal, scale: i32) {
1519 self.message.body.set_field(tag::PRICE_UNIT_OF_MEASURE_QTY, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1520 }
1521
1522 pub fn get_price_unit_of_measure_qty(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1524 let mut fld = field::PriceUnitOfMeasureQtyField::new(Decimal::ZERO, 0);
1525 self.message.body.get_field(tag::PRICE_UNIT_OF_MEASURE_QTY, &mut fld.0)?;
1526 Ok(fld.value())
1527 }
1528
1529
1530 pub fn has_price_unit_of_measure_qty(&self) -> bool {
1532 self.message.body.has(tag::PRICE_UNIT_OF_MEASURE_QTY)
1533 }
1534
1535
1536
1537
1538 pub fn set_product(&mut self, v: isize) {
1540 self.message.body.set_field(tag::PRODUCT, fixer::fix_int::FIXInt::from(v));
1541 }
1542
1543 pub fn get_product(&self) -> Result<isize, MessageRejectErrorEnum> {
1545 let mut fld = field::ProductField::new(0);
1546 self.message.body.get_field(tag::PRODUCT, &mut fld.0)?;
1547 Ok(fld.value())
1548 }
1549
1550
1551 pub fn has_product(&self) -> bool {
1553 self.message.body.has(tag::PRODUCT)
1554 }
1555
1556
1557
1558
1559 pub fn set_product_complex(&mut self, v: String) {
1561 self.message.body.set_field(tag::PRODUCT_COMPLEX, FIXString::from(v));
1562 }
1563
1564 pub fn get_product_complex(&self) -> Result<String, MessageRejectErrorEnum> {
1566 let mut fld = field::ProductComplexField::new(String::new());
1567 self.message.body.get_field(tag::PRODUCT_COMPLEX, &mut fld.0)?;
1568 Ok(fld.value().to_string())
1569 }
1570
1571
1572 pub fn has_product_complex(&self) -> bool {
1574 self.message.body.has(tag::PRODUCT_COMPLEX)
1575 }
1576
1577
1578
1579
1580 pub fn set_put_or_call(&mut self, v: isize) {
1582 self.message.body.set_field(tag::PUT_OR_CALL, fixer::fix_int::FIXInt::from(v));
1583 }
1584
1585 pub fn get_put_or_call(&self) -> Result<isize, MessageRejectErrorEnum> {
1587 let mut fld = field::PutOrCallField::new(0);
1588 self.message.body.get_field(tag::PUT_OR_CALL, &mut fld.0)?;
1589 Ok(fld.value())
1590 }
1591
1592
1593 pub fn has_put_or_call(&self) -> bool {
1595 self.message.body.has(tag::PUT_OR_CALL)
1596 }
1597
1598
1599
1600
1601 pub fn set_redemption_date(&mut self, v: String) {
1603 self.message.body.set_field(tag::REDEMPTION_DATE, FIXString::from(v));
1604 }
1605
1606 pub fn get_redemption_date(&self) -> Result<String, MessageRejectErrorEnum> {
1608 let mut fld = field::RedemptionDateField::new(String::new());
1609 self.message.body.get_field(tag::REDEMPTION_DATE, &mut fld.0)?;
1610 Ok(fld.value().to_string())
1611 }
1612
1613
1614 pub fn has_redemption_date(&self) -> bool {
1616 self.message.body.has(tag::REDEMPTION_DATE)
1617 }
1618
1619
1620
1621
1622 pub fn set_repo_collateral_security_type(&mut self, v: isize) {
1624 self.message.body.set_field(tag::REPO_COLLATERAL_SECURITY_TYPE, fixer::fix_int::FIXInt::from(v));
1625 }
1626
1627 pub fn get_repo_collateral_security_type(&self) -> Result<isize, MessageRejectErrorEnum> {
1629 let mut fld = field::RepoCollateralSecurityTypeField::new(0);
1630 self.message.body.get_field(tag::REPO_COLLATERAL_SECURITY_TYPE, &mut fld.0)?;
1631 Ok(fld.value())
1632 }
1633
1634
1635 pub fn has_repo_collateral_security_type(&self) -> bool {
1637 self.message.body.has(tag::REPO_COLLATERAL_SECURITY_TYPE)
1638 }
1639
1640
1641
1642
1643 pub fn set_repurchase_rate(&mut self, val: Decimal, scale: i32) {
1645 self.message.body.set_field(tag::REPURCHASE_RATE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1646 }
1647
1648 pub fn get_repurchase_rate(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1650 let mut fld = field::RepurchaseRateField::new(Decimal::ZERO, 0);
1651 self.message.body.get_field(tag::REPURCHASE_RATE, &mut fld.0)?;
1652 Ok(fld.value())
1653 }
1654
1655
1656 pub fn has_repurchase_rate(&self) -> bool {
1658 self.message.body.has(tag::REPURCHASE_RATE)
1659 }
1660
1661
1662
1663
1664 pub fn set_repurchase_term(&mut self, v: isize) {
1666 self.message.body.set_field(tag::REPURCHASE_TERM, fixer::fix_int::FIXInt::from(v));
1667 }
1668
1669 pub fn get_repurchase_term(&self) -> Result<isize, MessageRejectErrorEnum> {
1671 let mut fld = field::RepurchaseTermField::new(0);
1672 self.message.body.get_field(tag::REPURCHASE_TERM, &mut fld.0)?;
1673 Ok(fld.value())
1674 }
1675
1676
1677 pub fn has_repurchase_term(&self) -> bool {
1679 self.message.body.has(tag::REPURCHASE_TERM)
1680 }
1681
1682
1683
1684
1685 pub fn set_security_desc(&mut self, v: String) {
1687 self.message.body.set_field(tag::SECURITY_DESC, FIXString::from(v));
1688 }
1689
1690 pub fn get_security_desc(&self) -> Result<String, MessageRejectErrorEnum> {
1692 let mut fld = field::SecurityDescField::new(String::new());
1693 self.message.body.get_field(tag::SECURITY_DESC, &mut fld.0)?;
1694 Ok(fld.value().to_string())
1695 }
1696
1697
1698 pub fn has_security_desc(&self) -> bool {
1700 self.message.body.has(tag::SECURITY_DESC)
1701 }
1702
1703
1704
1705
1706 pub fn set_security_exchange(&mut self, v: String) {
1708 self.message.body.set_field(tag::SECURITY_EXCHANGE, FIXString::from(v));
1709 }
1710
1711 pub fn get_security_exchange(&self) -> Result<String, MessageRejectErrorEnum> {
1713 let mut fld = field::SecurityExchangeField::new(String::new());
1714 self.message.body.get_field(tag::SECURITY_EXCHANGE, &mut fld.0)?;
1715 Ok(fld.value().to_string())
1716 }
1717
1718
1719 pub fn has_security_exchange(&self) -> bool {
1721 self.message.body.has(tag::SECURITY_EXCHANGE)
1722 }
1723
1724
1725
1726
1727 pub fn set_security_group(&mut self, v: String) {
1729 self.message.body.set_field(tag::SECURITY_GROUP, FIXString::from(v));
1730 }
1731
1732 pub fn get_security_group(&self) -> Result<String, MessageRejectErrorEnum> {
1734 let mut fld = field::SecurityGroupField::new(String::new());
1735 self.message.body.get_field(tag::SECURITY_GROUP, &mut fld.0)?;
1736 Ok(fld.value().to_string())
1737 }
1738
1739
1740 pub fn has_security_group(&self) -> bool {
1742 self.message.body.has(tag::SECURITY_GROUP)
1743 }
1744
1745
1746
1747
1748 pub fn set_security_id(&mut self, v: String) {
1750 self.message.body.set_field(tag::SECURITY_ID, FIXString::from(v));
1751 }
1752
1753 pub fn get_security_id(&self) -> Result<String, MessageRejectErrorEnum> {
1755 let mut fld = field::SecurityIDField::new(String::new());
1756 self.message.body.get_field(tag::SECURITY_ID, &mut fld.0)?;
1757 Ok(fld.value().to_string())
1758 }
1759
1760
1761 pub fn has_security_id(&self) -> bool {
1763 self.message.body.has(tag::SECURITY_ID)
1764 }
1765
1766
1767
1768
1769 pub fn set_security_id_source(&mut self, v: String) {
1771 self.message.body.set_field(tag::SECURITY_ID_SOURCE, FIXString::from(v));
1772 }
1773
1774 pub fn get_security_id_source(&self) -> Result<String, MessageRejectErrorEnum> {
1776 let mut fld = field::SecurityIDSourceField::new(String::new());
1777 self.message.body.get_field(tag::SECURITY_ID_SOURCE, &mut fld.0)?;
1778 Ok(fld.value().to_string())
1779 }
1780
1781
1782 pub fn has_security_id_source(&self) -> bool {
1784 self.message.body.has(tag::SECURITY_ID_SOURCE)
1785 }
1786
1787
1788
1789
1790 pub fn set_security_status(&mut self, v: String) {
1792 self.message.body.set_field(tag::SECURITY_STATUS, FIXString::from(v));
1793 }
1794
1795 pub fn get_security_status(&self) -> Result<String, MessageRejectErrorEnum> {
1797 let mut fld = field::SecurityStatusField::new(String::new());
1798 self.message.body.get_field(tag::SECURITY_STATUS, &mut fld.0)?;
1799 Ok(fld.value().to_string())
1800 }
1801
1802
1803 pub fn has_security_status(&self) -> bool {
1805 self.message.body.has(tag::SECURITY_STATUS)
1806 }
1807
1808
1809
1810
1811 pub fn set_security_status_req_id(&mut self, v: String) {
1813 self.message.body.set_field(tag::SECURITY_STATUS_REQ_ID, FIXString::from(v));
1814 }
1815
1816 pub fn get_security_status_req_id(&self) -> Result<String, MessageRejectErrorEnum> {
1818 let mut fld = field::SecurityStatusReqIDField::new(String::new());
1819 self.message.body.get_field(tag::SECURITY_STATUS_REQ_ID, &mut fld.0)?;
1820 Ok(fld.value().to_string())
1821 }
1822
1823
1824 pub fn has_security_status_req_id(&self) -> bool {
1826 self.message.body.has(tag::SECURITY_STATUS_REQ_ID)
1827 }
1828
1829
1830
1831
1832 pub fn set_security_sub_type(&mut self, v: String) {
1834 self.message.body.set_field(tag::SECURITY_SUB_TYPE, FIXString::from(v));
1835 }
1836
1837 pub fn get_security_sub_type(&self) -> Result<String, MessageRejectErrorEnum> {
1839 let mut fld = field::SecuritySubTypeField::new(String::new());
1840 self.message.body.get_field(tag::SECURITY_SUB_TYPE, &mut fld.0)?;
1841 Ok(fld.value().to_string())
1842 }
1843
1844
1845 pub fn has_security_sub_type(&self) -> bool {
1847 self.message.body.has(tag::SECURITY_SUB_TYPE)
1848 }
1849
1850
1851
1852
1853 pub fn set_security_trading_event(&mut self, v: isize) {
1855 self.message.body.set_field(tag::SECURITY_TRADING_EVENT, fixer::fix_int::FIXInt::from(v));
1856 }
1857
1858 pub fn get_security_trading_event(&self) -> Result<isize, MessageRejectErrorEnum> {
1860 let mut fld = field::SecurityTradingEventField::new(0);
1861 self.message.body.get_field(tag::SECURITY_TRADING_EVENT, &mut fld.0)?;
1862 Ok(fld.value())
1863 }
1864
1865
1866 pub fn has_security_trading_event(&self) -> bool {
1868 self.message.body.has(tag::SECURITY_TRADING_EVENT)
1869 }
1870
1871
1872
1873
1874 pub fn set_security_trading_status(&mut self, v: isize) {
1876 self.message.body.set_field(tag::SECURITY_TRADING_STATUS, fixer::fix_int::FIXInt::from(v));
1877 }
1878
1879 pub fn get_security_trading_status(&self) -> Result<isize, MessageRejectErrorEnum> {
1881 let mut fld = field::SecurityTradingStatusField::new(0);
1882 self.message.body.get_field(tag::SECURITY_TRADING_STATUS, &mut fld.0)?;
1883 Ok(fld.value())
1884 }
1885
1886
1887 pub fn has_security_trading_status(&self) -> bool {
1889 self.message.body.has(tag::SECURITY_TRADING_STATUS)
1890 }
1891
1892
1893
1894
1895 pub fn set_security_type(&mut self, v: String) {
1897 self.message.body.set_field(tag::SECURITY_TYPE, FIXString::from(v));
1898 }
1899
1900 pub fn get_security_type(&self) -> Result<String, MessageRejectErrorEnum> {
1902 let mut fld = field::SecurityTypeField::new(String::new());
1903 self.message.body.get_field(tag::SECURITY_TYPE, &mut fld.0)?;
1904 Ok(fld.value().to_string())
1905 }
1906
1907
1908 pub fn has_security_type(&self) -> bool {
1910 self.message.body.has(tag::SECURITY_TYPE)
1911 }
1912
1913
1914
1915
1916 pub fn set_security_xml(&mut self, v: String) {
1918 self.message.body.set_field(tag::SECURITY_XML, FIXString::from(v));
1919 }
1920
1921 pub fn get_security_xml(&self) -> Result<String, MessageRejectErrorEnum> {
1923 let mut fld = field::SecurityXMLField::new(String::new());
1924 self.message.body.get_field(tag::SECURITY_XML, &mut fld.0)?;
1925 Ok(fld.value().to_string())
1926 }
1927
1928
1929 pub fn has_security_xml(&self) -> bool {
1931 self.message.body.has(tag::SECURITY_XML)
1932 }
1933
1934
1935
1936
1937 pub fn set_security_xml_len(&mut self, v: isize) {
1939 self.message.body.set_field(tag::SECURITY_XML_LEN, fixer::fix_int::FIXInt::from(v));
1940 }
1941
1942 pub fn get_security_xml_len(&self) -> Result<isize, MessageRejectErrorEnum> {
1944 let mut fld = field::SecurityXMLLenField::new(0);
1945 self.message.body.get_field(tag::SECURITY_XML_LEN, &mut fld.0)?;
1946 Ok(fld.value())
1947 }
1948
1949
1950 pub fn has_security_xml_len(&self) -> bool {
1952 self.message.body.has(tag::SECURITY_XML_LEN)
1953 }
1954
1955
1956
1957
1958 pub fn set_security_xml_schema(&mut self, v: String) {
1960 self.message.body.set_field(tag::SECURITY_XML_SCHEMA, FIXString::from(v));
1961 }
1962
1963 pub fn get_security_xml_schema(&self) -> Result<String, MessageRejectErrorEnum> {
1965 let mut fld = field::SecurityXMLSchemaField::new(String::new());
1966 self.message.body.get_field(tag::SECURITY_XML_SCHEMA, &mut fld.0)?;
1967 Ok(fld.value().to_string())
1968 }
1969
1970
1971 pub fn has_security_xml_schema(&self) -> bool {
1973 self.message.body.has(tag::SECURITY_XML_SCHEMA)
1974 }
1975
1976
1977
1978
1979 pub fn set_sell_volume(&mut self, val: Decimal, scale: i32) {
1981 self.message.body.set_field(tag::SELL_VOLUME, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1982 }
1983
1984 pub fn get_sell_volume(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1986 let mut fld = field::SellVolumeField::new(Decimal::ZERO, 0);
1987 self.message.body.get_field(tag::SELL_VOLUME, &mut fld.0)?;
1988 Ok(fld.value())
1989 }
1990
1991
1992 pub fn has_sell_volume(&self) -> bool {
1994 self.message.body.has(tag::SELL_VOLUME)
1995 }
1996
1997
1998
1999
2000 pub fn set_settl_method(&mut self, v: String) {
2002 self.message.body.set_field(tag::SETTL_METHOD, FIXString::from(v));
2003 }
2004
2005 pub fn get_settl_method(&self) -> Result<String, MessageRejectErrorEnum> {
2007 let mut fld = field::SettlMethodField::new(String::new());
2008 self.message.body.get_field(tag::SETTL_METHOD, &mut fld.0)?;
2009 Ok(fld.value().to_string())
2010 }
2011
2012
2013 pub fn has_settl_method(&self) -> bool {
2015 self.message.body.has(tag::SETTL_METHOD)
2016 }
2017
2018
2019
2020
2021 pub fn set_settle_on_open_flag(&mut self, v: String) {
2023 self.message.body.set_field(tag::SETTLE_ON_OPEN_FLAG, FIXString::from(v));
2024 }
2025
2026 pub fn get_settle_on_open_flag(&self) -> Result<String, MessageRejectErrorEnum> {
2028 let mut fld = field::SettleOnOpenFlagField::new(String::new());
2029 self.message.body.get_field(tag::SETTLE_ON_OPEN_FLAG, &mut fld.0)?;
2030 Ok(fld.value().to_string())
2031 }
2032
2033
2034 pub fn has_settle_on_open_flag(&self) -> bool {
2036 self.message.body.has(tag::SETTLE_ON_OPEN_FLAG)
2037 }
2038
2039
2040
2041
2042 pub fn set_state_or_province_of_issue(&mut self, v: String) {
2044 self.message.body.set_field(tag::STATE_OR_PROVINCE_OF_ISSUE, FIXString::from(v));
2045 }
2046
2047 pub fn get_state_or_province_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
2049 let mut fld = field::StateOrProvinceOfIssueField::new(String::new());
2050 self.message.body.get_field(tag::STATE_OR_PROVINCE_OF_ISSUE, &mut fld.0)?;
2051 Ok(fld.value().to_string())
2052 }
2053
2054
2055 pub fn has_state_or_province_of_issue(&self) -> bool {
2057 self.message.body.has(tag::STATE_OR_PROVINCE_OF_ISSUE)
2058 }
2059
2060
2061
2062
2063 pub fn set_strike_currency(&mut self, v: String) {
2065 self.message.body.set_field(tag::STRIKE_CURRENCY, FIXString::from(v));
2066 }
2067
2068 pub fn get_strike_currency(&self) -> Result<String, MessageRejectErrorEnum> {
2070 let mut fld = field::StrikeCurrencyField::new(String::new());
2071 self.message.body.get_field(tag::STRIKE_CURRENCY, &mut fld.0)?;
2072 Ok(fld.value().to_string())
2073 }
2074
2075
2076 pub fn has_strike_currency(&self) -> bool {
2078 self.message.body.has(tag::STRIKE_CURRENCY)
2079 }
2080
2081
2082
2083
2084 pub fn set_strike_multiplier(&mut self, val: Decimal, scale: i32) {
2086 self.message.body.set_field(tag::STRIKE_MULTIPLIER, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
2087 }
2088
2089 pub fn get_strike_multiplier(&self) -> Result<Decimal, MessageRejectErrorEnum> {
2091 let mut fld = field::StrikeMultiplierField::new(Decimal::ZERO, 0);
2092 self.message.body.get_field(tag::STRIKE_MULTIPLIER, &mut fld.0)?;
2093 Ok(fld.value())
2094 }
2095
2096
2097 pub fn has_strike_multiplier(&self) -> bool {
2099 self.message.body.has(tag::STRIKE_MULTIPLIER)
2100 }
2101
2102
2103
2104
2105 pub fn set_strike_price(&mut self, val: Decimal, scale: i32) {
2107 self.message.body.set_field(tag::STRIKE_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
2108 }
2109
2110 pub fn get_strike_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
2112 let mut fld = field::StrikePriceField::new(Decimal::ZERO, 0);
2113 self.message.body.get_field(tag::STRIKE_PRICE, &mut fld.0)?;
2114 Ok(fld.value())
2115 }
2116
2117
2118 pub fn has_strike_price(&self) -> bool {
2120 self.message.body.has(tag::STRIKE_PRICE)
2121 }
2122
2123
2124
2125
2126 pub fn set_strike_value(&mut self, val: Decimal, scale: i32) {
2128 self.message.body.set_field(tag::STRIKE_VALUE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
2129 }
2130
2131 pub fn get_strike_value(&self) -> Result<Decimal, MessageRejectErrorEnum> {
2133 let mut fld = field::StrikeValueField::new(Decimal::ZERO, 0);
2134 self.message.body.get_field(tag::STRIKE_VALUE, &mut fld.0)?;
2135 Ok(fld.value())
2136 }
2137
2138
2139 pub fn has_strike_value(&self) -> bool {
2141 self.message.body.has(tag::STRIKE_VALUE)
2142 }
2143
2144
2145
2146
2147 pub fn set_symbol(&mut self, v: String) {
2149 self.message.body.set_field(tag::SYMBOL, FIXString::from(v));
2150 }
2151
2152 pub fn get_symbol(&self) -> Result<String, MessageRejectErrorEnum> {
2154 let mut fld = field::SymbolField::new(String::new());
2155 self.message.body.get_field(tag::SYMBOL, &mut fld.0)?;
2156 Ok(fld.value().to_string())
2157 }
2158
2159
2160 pub fn has_symbol(&self) -> bool {
2162 self.message.body.has(tag::SYMBOL)
2163 }
2164
2165
2166
2167
2168 pub fn set_symbol_sfx(&mut self, v: String) {
2170 self.message.body.set_field(tag::SYMBOL_SFX, FIXString::from(v));
2171 }
2172
2173 pub fn get_symbol_sfx(&self) -> Result<String, MessageRejectErrorEnum> {
2175 let mut fld = field::SymbolSfxField::new(String::new());
2176 self.message.body.get_field(tag::SYMBOL_SFX, &mut fld.0)?;
2177 Ok(fld.value().to_string())
2178 }
2179
2180
2181 pub fn has_symbol_sfx(&self) -> bool {
2183 self.message.body.has(tag::SYMBOL_SFX)
2184 }
2185
2186
2187
2188
2189 pub fn set_text(&mut self, v: String) {
2191 self.message.body.set_field(tag::TEXT, FIXString::from(v));
2192 }
2193
2194 pub fn get_text(&self) -> Result<String, MessageRejectErrorEnum> {
2196 let mut fld = field::TextField::new(String::new());
2197 self.message.body.get_field(tag::TEXT, &mut fld.0)?;
2198 Ok(fld.value().to_string())
2199 }
2200
2201
2202 pub fn has_text(&self) -> bool {
2204 self.message.body.has(tag::TEXT)
2205 }
2206
2207
2208
2209
2210 pub fn set_time_unit(&mut self, v: String) {
2212 self.message.body.set_field(tag::TIME_UNIT, FIXString::from(v));
2213 }
2214
2215 pub fn get_time_unit(&self) -> Result<String, MessageRejectErrorEnum> {
2217 let mut fld = field::TimeUnitField::new(String::new());
2218 self.message.body.get_field(tag::TIME_UNIT, &mut fld.0)?;
2219 Ok(fld.value().to_string())
2220 }
2221
2222
2223 pub fn has_time_unit(&self) -> bool {
2225 self.message.body.has(tag::TIME_UNIT)
2226 }
2227
2228
2229
2230
2231 pub fn set_trading_session_id(&mut self, v: String) {
2233 self.message.body.set_field(tag::TRADING_SESSION_ID, FIXString::from(v));
2234 }
2235
2236 pub fn get_trading_session_id(&self) -> Result<String, MessageRejectErrorEnum> {
2238 let mut fld = field::TradingSessionIDField::new(String::new());
2239 self.message.body.get_field(tag::TRADING_SESSION_ID, &mut fld.0)?;
2240 Ok(fld.value().to_string())
2241 }
2242
2243
2244 pub fn has_trading_session_id(&self) -> bool {
2246 self.message.body.has(tag::TRADING_SESSION_ID)
2247 }
2248
2249
2250
2251
2252 pub fn set_trading_session_sub_id(&mut self, v: String) {
2254 self.message.body.set_field(tag::TRADING_SESSION_SUB_ID, FIXString::from(v));
2255 }
2256
2257 pub fn get_trading_session_sub_id(&self) -> Result<String, MessageRejectErrorEnum> {
2259 let mut fld = field::TradingSessionSubIDField::new(String::new());
2260 self.message.body.get_field(tag::TRADING_SESSION_SUB_ID, &mut fld.0)?;
2261 Ok(fld.value().to_string())
2262 }
2263
2264
2265 pub fn has_trading_session_sub_id(&self) -> bool {
2267 self.message.body.has(tag::TRADING_SESSION_SUB_ID)
2268 }
2269
2270
2271
2272
2273 pub fn set_transact_time(&mut self, v: Timestamp) {
2275 self.message.body.set_field(tag::TRANSACT_TIME, fixer::fix_utc_timestamp::FIXUTCTimestamp {
2276 time: v,
2277 precision: fixer::fix_utc_timestamp::TimestampPrecision::Millis,
2278 });
2279 }
2280
2281 pub fn get_transact_time(&self) -> Result<Timestamp, MessageRejectErrorEnum> {
2283 let mut fld = field::TransactTimeField::new(Timestamp::UNIX_EPOCH);
2284 self.message.body.get_field(tag::TRANSACT_TIME, &mut fld.0)?;
2285 Ok(fld.value())
2286 }
2287
2288
2289 pub fn has_transact_time(&self) -> bool {
2291 self.message.body.has(tag::TRANSACT_TIME)
2292 }
2293
2294
2295
2296
2297 pub fn set_unit_of_measure(&mut self, v: String) {
2299 self.message.body.set_field(tag::UNIT_OF_MEASURE, FIXString::from(v));
2300 }
2301
2302 pub fn get_unit_of_measure(&self) -> Result<String, MessageRejectErrorEnum> {
2304 let mut fld = field::UnitOfMeasureField::new(String::new());
2305 self.message.body.get_field(tag::UNIT_OF_MEASURE, &mut fld.0)?;
2306 Ok(fld.value().to_string())
2307 }
2308
2309
2310 pub fn has_unit_of_measure(&self) -> bool {
2312 self.message.body.has(tag::UNIT_OF_MEASURE)
2313 }
2314
2315
2316
2317
2318 pub fn set_unit_of_measure_qty(&mut self, val: Decimal, scale: i32) {
2320 self.message.body.set_field(tag::UNIT_OF_MEASURE_QTY, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
2321 }
2322
2323 pub fn get_unit_of_measure_qty(&self) -> Result<Decimal, MessageRejectErrorEnum> {
2325 let mut fld = field::UnitOfMeasureQtyField::new(Decimal::ZERO, 0);
2326 self.message.body.get_field(tag::UNIT_OF_MEASURE_QTY, &mut fld.0)?;
2327 Ok(fld.value())
2328 }
2329
2330
2331 pub fn has_unit_of_measure_qty(&self) -> bool {
2333 self.message.body.has(tag::UNIT_OF_MEASURE_QTY)
2334 }
2335
2336
2337
2338
2339 pub fn set_unsolicited_indicator(&mut self, v: bool) {
2341 self.message.body.set_field(tag::UNSOLICITED_INDICATOR, fixer::fix_boolean::FIXBoolean::from(v));
2342 }
2343
2344 pub fn get_unsolicited_indicator(&self) -> Result<bool, MessageRejectErrorEnum> {
2346 let mut fld = field::UnsolicitedIndicatorField::new(false);
2347 self.message.body.get_field(tag::UNSOLICITED_INDICATOR, &mut fld.0)?;
2348 Ok(fld.value())
2349 }
2350
2351
2352 pub fn has_unsolicited_indicator(&self) -> bool {
2354 self.message.body.has(tag::UNSOLICITED_INDICATOR)
2355 }
2356
2357
2358}
2359
2360pub type RouteOut = fn(msg: SecurityStatus, session_id: SessionID) -> Result<(), MessageRejectErrorEnum>;
2362
2363pub type Route = (&'static str, &'static str, Box<dyn Fn(&Message, SessionID) -> Result<(), MessageRejectErrorEnum> + Send>);
2365
2366pub fn route(router: RouteOut) -> Route {
2368 let r = move |msg: &Message, session_id: SessionID| -> Result<(), MessageRejectErrorEnum> {
2369 router(SecurityStatus::from_message(msg.clone()), session_id)
2370 };
2371 ("8", "f", Box::new(r))
2372}