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 IOI {
22 pub message: Message,
23}
24
25impl IOI {
26 pub fn new(ioiid: field::IOIIDField, ioi_trans_type: field::IOITransTypeField, side: field::SideField, ioi_qty: field::IOIQtyField) -> Self {
28 let mut msg = Message::new();
29 msg.header.set_field(tag::MSG_TYPE, FIXString::from("6".to_string()));
30
31 msg.body.set_field(tag::IOIID, ioiid.0);
32
33 msg.body.set_field(tag::IOI_TRANS_TYPE, ioi_trans_type.0);
34
35 msg.body.set_field(tag::SIDE, side.0);
36
37 msg.body.set_field(tag::IOI_QTY, ioi_qty.0);
38
39 Self { message: msg }
40 }
41
42 pub fn from_message(msg: Message) -> Self {
44 Self { message: msg }
45 }
46
47 pub fn to_message(self) -> Message {
49 self.message
50 }
51
52
53
54
55 pub fn set_agreement_currency(&mut self, v: String) {
57 self.message.body.set_field(tag::AGREEMENT_CURRENCY, FIXString::from(v));
58 }
59
60 pub fn get_agreement_currency(&self) -> Result<String, MessageRejectErrorEnum> {
62 let mut fld = field::AgreementCurrencyField::new(String::new());
63 self.message.body.get_field(tag::AGREEMENT_CURRENCY, &mut fld.0)?;
64 Ok(fld.value().to_string())
65 }
66
67
68 pub fn has_agreement_currency(&self) -> bool {
70 self.message.body.has(tag::AGREEMENT_CURRENCY)
71 }
72
73
74
75
76 pub fn set_agreement_date(&mut self, v: String) {
78 self.message.body.set_field(tag::AGREEMENT_DATE, FIXString::from(v));
79 }
80
81 pub fn get_agreement_date(&self) -> Result<String, MessageRejectErrorEnum> {
83 let mut fld = field::AgreementDateField::new(String::new());
84 self.message.body.get_field(tag::AGREEMENT_DATE, &mut fld.0)?;
85 Ok(fld.value().to_string())
86 }
87
88
89 pub fn has_agreement_date(&self) -> bool {
91 self.message.body.has(tag::AGREEMENT_DATE)
92 }
93
94
95
96
97 pub fn set_agreement_desc(&mut self, v: String) {
99 self.message.body.set_field(tag::AGREEMENT_DESC, FIXString::from(v));
100 }
101
102 pub fn get_agreement_desc(&self) -> Result<String, MessageRejectErrorEnum> {
104 let mut fld = field::AgreementDescField::new(String::new());
105 self.message.body.get_field(tag::AGREEMENT_DESC, &mut fld.0)?;
106 Ok(fld.value().to_string())
107 }
108
109
110 pub fn has_agreement_desc(&self) -> bool {
112 self.message.body.has(tag::AGREEMENT_DESC)
113 }
114
115
116
117
118 pub fn set_agreement_id(&mut self, v: String) {
120 self.message.body.set_field(tag::AGREEMENT_ID, FIXString::from(v));
121 }
122
123 pub fn get_agreement_id(&self) -> Result<String, MessageRejectErrorEnum> {
125 let mut fld = field::AgreementIDField::new(String::new());
126 self.message.body.get_field(tag::AGREEMENT_ID, &mut fld.0)?;
127 Ok(fld.value().to_string())
128 }
129
130
131 pub fn has_agreement_id(&self) -> bool {
133 self.message.body.has(tag::AGREEMENT_ID)
134 }
135
136
137
138
139 pub fn set_benchmark_curve_currency(&mut self, v: String) {
141 self.message.body.set_field(tag::BENCHMARK_CURVE_CURRENCY, FIXString::from(v));
142 }
143
144 pub fn get_benchmark_curve_currency(&self) -> Result<String, MessageRejectErrorEnum> {
146 let mut fld = field::BenchmarkCurveCurrencyField::new(String::new());
147 self.message.body.get_field(tag::BENCHMARK_CURVE_CURRENCY, &mut fld.0)?;
148 Ok(fld.value().to_string())
149 }
150
151
152 pub fn has_benchmark_curve_currency(&self) -> bool {
154 self.message.body.has(tag::BENCHMARK_CURVE_CURRENCY)
155 }
156
157
158
159
160 pub fn set_benchmark_curve_name(&mut self, v: String) {
162 self.message.body.set_field(tag::BENCHMARK_CURVE_NAME, FIXString::from(v));
163 }
164
165 pub fn get_benchmark_curve_name(&self) -> Result<String, MessageRejectErrorEnum> {
167 let mut fld = field::BenchmarkCurveNameField::new(String::new());
168 self.message.body.get_field(tag::BENCHMARK_CURVE_NAME, &mut fld.0)?;
169 Ok(fld.value().to_string())
170 }
171
172
173 pub fn has_benchmark_curve_name(&self) -> bool {
175 self.message.body.has(tag::BENCHMARK_CURVE_NAME)
176 }
177
178
179
180
181 pub fn set_benchmark_curve_point(&mut self, v: String) {
183 self.message.body.set_field(tag::BENCHMARK_CURVE_POINT, FIXString::from(v));
184 }
185
186 pub fn get_benchmark_curve_point(&self) -> Result<String, MessageRejectErrorEnum> {
188 let mut fld = field::BenchmarkCurvePointField::new(String::new());
189 self.message.body.get_field(tag::BENCHMARK_CURVE_POINT, &mut fld.0)?;
190 Ok(fld.value().to_string())
191 }
192
193
194 pub fn has_benchmark_curve_point(&self) -> bool {
196 self.message.body.has(tag::BENCHMARK_CURVE_POINT)
197 }
198
199
200
201
202 pub fn set_benchmark_price(&mut self, val: Decimal, scale: i32) {
204 self.message.body.set_field(tag::BENCHMARK_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
205 }
206
207 pub fn get_benchmark_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
209 let mut fld = field::BenchmarkPriceField::new(Decimal::ZERO, 0);
210 self.message.body.get_field(tag::BENCHMARK_PRICE, &mut fld.0)?;
211 Ok(fld.value())
212 }
213
214
215 pub fn has_benchmark_price(&self) -> bool {
217 self.message.body.has(tag::BENCHMARK_PRICE)
218 }
219
220
221
222
223 pub fn set_benchmark_price_type(&mut self, v: isize) {
225 self.message.body.set_field(tag::BENCHMARK_PRICE_TYPE, fixer::fix_int::FIXInt::from(v));
226 }
227
228 pub fn get_benchmark_price_type(&self) -> Result<isize, MessageRejectErrorEnum> {
230 let mut fld = field::BenchmarkPriceTypeField::new(0);
231 self.message.body.get_field(tag::BENCHMARK_PRICE_TYPE, &mut fld.0)?;
232 Ok(fld.value())
233 }
234
235
236 pub fn has_benchmark_price_type(&self) -> bool {
238 self.message.body.has(tag::BENCHMARK_PRICE_TYPE)
239 }
240
241
242
243
244 pub fn set_benchmark_security_id(&mut self, v: String) {
246 self.message.body.set_field(tag::BENCHMARK_SECURITY_ID, FIXString::from(v));
247 }
248
249 pub fn get_benchmark_security_id(&self) -> Result<String, MessageRejectErrorEnum> {
251 let mut fld = field::BenchmarkSecurityIDField::new(String::new());
252 self.message.body.get_field(tag::BENCHMARK_SECURITY_ID, &mut fld.0)?;
253 Ok(fld.value().to_string())
254 }
255
256
257 pub fn has_benchmark_security_id(&self) -> bool {
259 self.message.body.has(tag::BENCHMARK_SECURITY_ID)
260 }
261
262
263
264
265 pub fn set_benchmark_security_id_source(&mut self, v: String) {
267 self.message.body.set_field(tag::BENCHMARK_SECURITY_ID_SOURCE, FIXString::from(v));
268 }
269
270 pub fn get_benchmark_security_id_source(&self) -> Result<String, MessageRejectErrorEnum> {
272 let mut fld = field::BenchmarkSecurityIDSourceField::new(String::new());
273 self.message.body.get_field(tag::BENCHMARK_SECURITY_ID_SOURCE, &mut fld.0)?;
274 Ok(fld.value().to_string())
275 }
276
277
278 pub fn has_benchmark_security_id_source(&self) -> bool {
280 self.message.body.has(tag::BENCHMARK_SECURITY_ID_SOURCE)
281 }
282
283
284
285
286 pub fn set_cfi_code(&mut self, v: String) {
288 self.message.body.set_field(tag::CFI_CODE, FIXString::from(v));
289 }
290
291 pub fn get_cfi_code(&self) -> Result<String, MessageRejectErrorEnum> {
293 let mut fld = field::CFICodeField::new(String::new());
294 self.message.body.get_field(tag::CFI_CODE, &mut fld.0)?;
295 Ok(fld.value().to_string())
296 }
297
298
299 pub fn has_cfi_code(&self) -> bool {
301 self.message.body.has(tag::CFI_CODE)
302 }
303
304
305
306
307 pub fn set_cp_program(&mut self, v: isize) {
309 self.message.body.set_field(tag::CP_PROGRAM, fixer::fix_int::FIXInt::from(v));
310 }
311
312 pub fn get_cp_program(&self) -> Result<isize, MessageRejectErrorEnum> {
314 let mut fld = field::CPProgramField::new(0);
315 self.message.body.get_field(tag::CP_PROGRAM, &mut fld.0)?;
316 Ok(fld.value())
317 }
318
319
320 pub fn has_cp_program(&self) -> bool {
322 self.message.body.has(tag::CP_PROGRAM)
323 }
324
325
326
327
328 pub fn set_cp_reg_type(&mut self, v: String) {
330 self.message.body.set_field(tag::CP_REG_TYPE, FIXString::from(v));
331 }
332
333 pub fn get_cp_reg_type(&self) -> Result<String, MessageRejectErrorEnum> {
335 let mut fld = field::CPRegTypeField::new(String::new());
336 self.message.body.get_field(tag::CP_REG_TYPE, &mut fld.0)?;
337 Ok(fld.value().to_string())
338 }
339
340
341 pub fn has_cp_reg_type(&self) -> bool {
343 self.message.body.has(tag::CP_REG_TYPE)
344 }
345
346
347
348
349 pub fn set_cash_order_qty(&mut self, val: Decimal, scale: i32) {
351 self.message.body.set_field(tag::CASH_ORDER_QTY, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
352 }
353
354 pub fn get_cash_order_qty(&self) -> Result<Decimal, MessageRejectErrorEnum> {
356 let mut fld = field::CashOrderQtyField::new(Decimal::ZERO, 0);
357 self.message.body.get_field(tag::CASH_ORDER_QTY, &mut fld.0)?;
358 Ok(fld.value())
359 }
360
361
362 pub fn has_cash_order_qty(&self) -> bool {
364 self.message.body.has(tag::CASH_ORDER_QTY)
365 }
366
367
368
369
370 pub fn set_contract_multiplier(&mut self, val: Decimal, scale: i32) {
372 self.message.body.set_field(tag::CONTRACT_MULTIPLIER, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
373 }
374
375 pub fn get_contract_multiplier(&self) -> Result<Decimal, MessageRejectErrorEnum> {
377 let mut fld = field::ContractMultiplierField::new(Decimal::ZERO, 0);
378 self.message.body.get_field(tag::CONTRACT_MULTIPLIER, &mut fld.0)?;
379 Ok(fld.value())
380 }
381
382
383 pub fn has_contract_multiplier(&self) -> bool {
385 self.message.body.has(tag::CONTRACT_MULTIPLIER)
386 }
387
388
389
390
391 pub fn set_contract_settl_month(&mut self, v: String) {
393 self.message.body.set_field(tag::CONTRACT_SETTL_MONTH, FIXString::from(v));
394 }
395
396 pub fn get_contract_settl_month(&self) -> Result<String, MessageRejectErrorEnum> {
398 let mut fld = field::ContractSettlMonthField::new(String::new());
399 self.message.body.get_field(tag::CONTRACT_SETTL_MONTH, &mut fld.0)?;
400 Ok(fld.value().to_string())
401 }
402
403
404 pub fn has_contract_settl_month(&self) -> bool {
406 self.message.body.has(tag::CONTRACT_SETTL_MONTH)
407 }
408
409
410
411
412 pub fn set_country_of_issue(&mut self, v: String) {
414 self.message.body.set_field(tag::COUNTRY_OF_ISSUE, FIXString::from(v));
415 }
416
417 pub fn get_country_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
419 let mut fld = field::CountryOfIssueField::new(String::new());
420 self.message.body.get_field(tag::COUNTRY_OF_ISSUE, &mut fld.0)?;
421 Ok(fld.value().to_string())
422 }
423
424
425 pub fn has_country_of_issue(&self) -> bool {
427 self.message.body.has(tag::COUNTRY_OF_ISSUE)
428 }
429
430
431
432
433 pub fn set_coupon_payment_date(&mut self, v: String) {
435 self.message.body.set_field(tag::COUPON_PAYMENT_DATE, FIXString::from(v));
436 }
437
438 pub fn get_coupon_payment_date(&self) -> Result<String, MessageRejectErrorEnum> {
440 let mut fld = field::CouponPaymentDateField::new(String::new());
441 self.message.body.get_field(tag::COUPON_PAYMENT_DATE, &mut fld.0)?;
442 Ok(fld.value().to_string())
443 }
444
445
446 pub fn has_coupon_payment_date(&self) -> bool {
448 self.message.body.has(tag::COUPON_PAYMENT_DATE)
449 }
450
451
452
453
454 pub fn set_coupon_rate(&mut self, val: Decimal, scale: i32) {
456 self.message.body.set_field(tag::COUPON_RATE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
457 }
458
459 pub fn get_coupon_rate(&self) -> Result<Decimal, MessageRejectErrorEnum> {
461 let mut fld = field::CouponRateField::new(Decimal::ZERO, 0);
462 self.message.body.get_field(tag::COUPON_RATE, &mut fld.0)?;
463 Ok(fld.value())
464 }
465
466
467 pub fn has_coupon_rate(&self) -> bool {
469 self.message.body.has(tag::COUPON_RATE)
470 }
471
472
473
474
475 pub fn set_credit_rating(&mut self, v: String) {
477 self.message.body.set_field(tag::CREDIT_RATING, FIXString::from(v));
478 }
479
480 pub fn get_credit_rating(&self) -> Result<String, MessageRejectErrorEnum> {
482 let mut fld = field::CreditRatingField::new(String::new());
483 self.message.body.get_field(tag::CREDIT_RATING, &mut fld.0)?;
484 Ok(fld.value().to_string())
485 }
486
487
488 pub fn has_credit_rating(&self) -> bool {
490 self.message.body.has(tag::CREDIT_RATING)
491 }
492
493
494
495
496 pub fn set_currency(&mut self, v: String) {
498 self.message.body.set_field(tag::CURRENCY, FIXString::from(v));
499 }
500
501 pub fn get_currency(&self) -> Result<String, MessageRejectErrorEnum> {
503 let mut fld = field::CurrencyField::new(String::new());
504 self.message.body.get_field(tag::CURRENCY, &mut fld.0)?;
505 Ok(fld.value().to_string())
506 }
507
508
509 pub fn has_currency(&self) -> bool {
511 self.message.body.has(tag::CURRENCY)
512 }
513
514
515
516
517 pub fn set_dated_date(&mut self, v: String) {
519 self.message.body.set_field(tag::DATED_DATE, FIXString::from(v));
520 }
521
522 pub fn get_dated_date(&self) -> Result<String, MessageRejectErrorEnum> {
524 let mut fld = field::DatedDateField::new(String::new());
525 self.message.body.get_field(tag::DATED_DATE, &mut fld.0)?;
526 Ok(fld.value().to_string())
527 }
528
529
530 pub fn has_dated_date(&self) -> bool {
532 self.message.body.has(tag::DATED_DATE)
533 }
534
535
536
537
538 pub fn set_delivery_type(&mut self, v: isize) {
540 self.message.body.set_field(tag::DELIVERY_TYPE, fixer::fix_int::FIXInt::from(v));
541 }
542
543 pub fn get_delivery_type(&self) -> Result<isize, MessageRejectErrorEnum> {
545 let mut fld = field::DeliveryTypeField::new(0);
546 self.message.body.get_field(tag::DELIVERY_TYPE, &mut fld.0)?;
547 Ok(fld.value())
548 }
549
550
551 pub fn has_delivery_type(&self) -> bool {
553 self.message.body.has(tag::DELIVERY_TYPE)
554 }
555
556
557
558
559 pub fn set_encoded_issuer(&mut self, v: String) {
561 self.message.body.set_field(tag::ENCODED_ISSUER, FIXString::from(v));
562 }
563
564 pub fn get_encoded_issuer(&self) -> Result<String, MessageRejectErrorEnum> {
566 let mut fld = field::EncodedIssuerField::new(String::new());
567 self.message.body.get_field(tag::ENCODED_ISSUER, &mut fld.0)?;
568 Ok(fld.value().to_string())
569 }
570
571
572 pub fn has_encoded_issuer(&self) -> bool {
574 self.message.body.has(tag::ENCODED_ISSUER)
575 }
576
577
578
579
580 pub fn set_encoded_issuer_len(&mut self, v: isize) {
582 self.message.body.set_field(tag::ENCODED_ISSUER_LEN, fixer::fix_int::FIXInt::from(v));
583 }
584
585 pub fn get_encoded_issuer_len(&self) -> Result<isize, MessageRejectErrorEnum> {
587 let mut fld = field::EncodedIssuerLenField::new(0);
588 self.message.body.get_field(tag::ENCODED_ISSUER_LEN, &mut fld.0)?;
589 Ok(fld.value())
590 }
591
592
593 pub fn has_encoded_issuer_len(&self) -> bool {
595 self.message.body.has(tag::ENCODED_ISSUER_LEN)
596 }
597
598
599
600
601 pub fn set_encoded_security_desc(&mut self, v: String) {
603 self.message.body.set_field(tag::ENCODED_SECURITY_DESC, FIXString::from(v));
604 }
605
606 pub fn get_encoded_security_desc(&self) -> Result<String, MessageRejectErrorEnum> {
608 let mut fld = field::EncodedSecurityDescField::new(String::new());
609 self.message.body.get_field(tag::ENCODED_SECURITY_DESC, &mut fld.0)?;
610 Ok(fld.value().to_string())
611 }
612
613
614 pub fn has_encoded_security_desc(&self) -> bool {
616 self.message.body.has(tag::ENCODED_SECURITY_DESC)
617 }
618
619
620
621
622 pub fn set_encoded_security_desc_len(&mut self, v: isize) {
624 self.message.body.set_field(tag::ENCODED_SECURITY_DESC_LEN, fixer::fix_int::FIXInt::from(v));
625 }
626
627 pub fn get_encoded_security_desc_len(&self) -> Result<isize, MessageRejectErrorEnum> {
629 let mut fld = field::EncodedSecurityDescLenField::new(0);
630 self.message.body.get_field(tag::ENCODED_SECURITY_DESC_LEN, &mut fld.0)?;
631 Ok(fld.value())
632 }
633
634
635 pub fn has_encoded_security_desc_len(&self) -> bool {
637 self.message.body.has(tag::ENCODED_SECURITY_DESC_LEN)
638 }
639
640
641
642
643 pub fn set_encoded_text(&mut self, v: String) {
645 self.message.body.set_field(tag::ENCODED_TEXT, FIXString::from(v));
646 }
647
648 pub fn get_encoded_text(&self) -> Result<String, MessageRejectErrorEnum> {
650 let mut fld = field::EncodedTextField::new(String::new());
651 self.message.body.get_field(tag::ENCODED_TEXT, &mut fld.0)?;
652 Ok(fld.value().to_string())
653 }
654
655
656 pub fn has_encoded_text(&self) -> bool {
658 self.message.body.has(tag::ENCODED_TEXT)
659 }
660
661
662
663
664 pub fn set_encoded_text_len(&mut self, v: isize) {
666 self.message.body.set_field(tag::ENCODED_TEXT_LEN, fixer::fix_int::FIXInt::from(v));
667 }
668
669 pub fn get_encoded_text_len(&self) -> Result<isize, MessageRejectErrorEnum> {
671 let mut fld = field::EncodedTextLenField::new(0);
672 self.message.body.get_field(tag::ENCODED_TEXT_LEN, &mut fld.0)?;
673 Ok(fld.value())
674 }
675
676
677 pub fn has_encoded_text_len(&self) -> bool {
679 self.message.body.has(tag::ENCODED_TEXT_LEN)
680 }
681
682
683
684
685 pub fn set_end_date(&mut self, v: String) {
687 self.message.body.set_field(tag::END_DATE, FIXString::from(v));
688 }
689
690 pub fn get_end_date(&self) -> Result<String, MessageRejectErrorEnum> {
692 let mut fld = field::EndDateField::new(String::new());
693 self.message.body.get_field(tag::END_DATE, &mut fld.0)?;
694 Ok(fld.value().to_string())
695 }
696
697
698 pub fn has_end_date(&self) -> bool {
700 self.message.body.has(tag::END_DATE)
701 }
702
703
704
705
706 pub fn set_factor(&mut self, val: Decimal, scale: i32) {
708 self.message.body.set_field(tag::FACTOR, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
709 }
710
711 pub fn get_factor(&self) -> Result<Decimal, MessageRejectErrorEnum> {
713 let mut fld = field::FactorField::new(Decimal::ZERO, 0);
714 self.message.body.get_field(tag::FACTOR, &mut fld.0)?;
715 Ok(fld.value())
716 }
717
718
719 pub fn has_factor(&self) -> bool {
721 self.message.body.has(tag::FACTOR)
722 }
723
724
725
726
727 pub fn set_ioiid(&mut self, v: String) {
729 self.message.body.set_field(tag::IOIID, FIXString::from(v));
730 }
731
732 pub fn get_ioiid(&self) -> Result<String, MessageRejectErrorEnum> {
734 let mut fld = field::IOIIDField::new(String::new());
735 self.message.body.get_field(tag::IOIID, &mut fld.0)?;
736 Ok(fld.value().to_string())
737 }
738
739
740 pub fn has_ioiid(&self) -> bool {
742 self.message.body.has(tag::IOIID)
743 }
744
745
746
747
748 pub fn set_ioi_natural_flag(&mut self, v: bool) {
750 self.message.body.set_field(tag::IOI_NATURAL_FLAG, fixer::fix_boolean::FIXBoolean::from(v));
751 }
752
753 pub fn get_ioi_natural_flag(&self) -> Result<bool, MessageRejectErrorEnum> {
755 let mut fld = field::IOINaturalFlagField::new(false);
756 self.message.body.get_field(tag::IOI_NATURAL_FLAG, &mut fld.0)?;
757 Ok(fld.value())
758 }
759
760
761 pub fn has_ioi_natural_flag(&self) -> bool {
763 self.message.body.has(tag::IOI_NATURAL_FLAG)
764 }
765
766
767
768
769 pub fn set_ioi_qlty_ind(&mut self, v: String) {
771 self.message.body.set_field(tag::IOI_QLTY_IND, FIXString::from(v));
772 }
773
774 pub fn get_ioi_qlty_ind(&self) -> Result<String, MessageRejectErrorEnum> {
776 let mut fld = field::IOIQltyIndField::new(String::new());
777 self.message.body.get_field(tag::IOI_QLTY_IND, &mut fld.0)?;
778 Ok(fld.value().to_string())
779 }
780
781
782 pub fn has_ioi_qlty_ind(&self) -> bool {
784 self.message.body.has(tag::IOI_QLTY_IND)
785 }
786
787
788
789
790 pub fn set_ioi_qty(&mut self, v: String) {
792 self.message.body.set_field(tag::IOI_QTY, FIXString::from(v));
793 }
794
795 pub fn get_ioi_qty(&self) -> Result<String, MessageRejectErrorEnum> {
797 let mut fld = field::IOIQtyField::new(String::new());
798 self.message.body.get_field(tag::IOI_QTY, &mut fld.0)?;
799 Ok(fld.value().to_string())
800 }
801
802
803 pub fn has_ioi_qty(&self) -> bool {
805 self.message.body.has(tag::IOI_QTY)
806 }
807
808
809
810
811 pub fn set_ioi_ref_id(&mut self, v: String) {
813 self.message.body.set_field(tag::IOI_REF_ID, FIXString::from(v));
814 }
815
816 pub fn get_ioi_ref_id(&self) -> Result<String, MessageRejectErrorEnum> {
818 let mut fld = field::IOIRefIDField::new(String::new());
819 self.message.body.get_field(tag::IOI_REF_ID, &mut fld.0)?;
820 Ok(fld.value().to_string())
821 }
822
823
824 pub fn has_ioi_ref_id(&self) -> bool {
826 self.message.body.has(tag::IOI_REF_ID)
827 }
828
829
830
831
832 pub fn set_ioi_trans_type(&mut self, v: String) {
834 self.message.body.set_field(tag::IOI_TRANS_TYPE, FIXString::from(v));
835 }
836
837 pub fn get_ioi_trans_type(&self) -> Result<String, MessageRejectErrorEnum> {
839 let mut fld = field::IOITransTypeField::new(String::new());
840 self.message.body.get_field(tag::IOI_TRANS_TYPE, &mut fld.0)?;
841 Ok(fld.value().to_string())
842 }
843
844
845 pub fn has_ioi_trans_type(&self) -> bool {
847 self.message.body.has(tag::IOI_TRANS_TYPE)
848 }
849
850
851
852
853 pub fn set_instr_registry(&mut self, v: String) {
855 self.message.body.set_field(tag::INSTR_REGISTRY, FIXString::from(v));
856 }
857
858 pub fn get_instr_registry(&self) -> Result<String, MessageRejectErrorEnum> {
860 let mut fld = field::InstrRegistryField::new(String::new());
861 self.message.body.get_field(tag::INSTR_REGISTRY, &mut fld.0)?;
862 Ok(fld.value().to_string())
863 }
864
865
866 pub fn has_instr_registry(&self) -> bool {
868 self.message.body.has(tag::INSTR_REGISTRY)
869 }
870
871
872
873
874 pub fn set_interest_accrual_date(&mut self, v: String) {
876 self.message.body.set_field(tag::INTEREST_ACCRUAL_DATE, FIXString::from(v));
877 }
878
879 pub fn get_interest_accrual_date(&self) -> Result<String, MessageRejectErrorEnum> {
881 let mut fld = field::InterestAccrualDateField::new(String::new());
882 self.message.body.get_field(tag::INTEREST_ACCRUAL_DATE, &mut fld.0)?;
883 Ok(fld.value().to_string())
884 }
885
886
887 pub fn has_interest_accrual_date(&self) -> bool {
889 self.message.body.has(tag::INTEREST_ACCRUAL_DATE)
890 }
891
892
893
894
895 pub fn set_issue_date(&mut self, v: String) {
897 self.message.body.set_field(tag::ISSUE_DATE, FIXString::from(v));
898 }
899
900 pub fn get_issue_date(&self) -> Result<String, MessageRejectErrorEnum> {
902 let mut fld = field::IssueDateField::new(String::new());
903 self.message.body.get_field(tag::ISSUE_DATE, &mut fld.0)?;
904 Ok(fld.value().to_string())
905 }
906
907
908 pub fn has_issue_date(&self) -> bool {
910 self.message.body.has(tag::ISSUE_DATE)
911 }
912
913
914
915
916 pub fn set_issuer(&mut self, v: String) {
918 self.message.body.set_field(tag::ISSUER, FIXString::from(v));
919 }
920
921 pub fn get_issuer(&self) -> Result<String, MessageRejectErrorEnum> {
923 let mut fld = field::IssuerField::new(String::new());
924 self.message.body.get_field(tag::ISSUER, &mut fld.0)?;
925 Ok(fld.value().to_string())
926 }
927
928
929 pub fn has_issuer(&self) -> bool {
931 self.message.body.has(tag::ISSUER)
932 }
933
934
935
936
937 pub fn set_locale_of_issue(&mut self, v: String) {
939 self.message.body.set_field(tag::LOCALE_OF_ISSUE, FIXString::from(v));
940 }
941
942 pub fn get_locale_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
944 let mut fld = field::LocaleOfIssueField::new(String::new());
945 self.message.body.get_field(tag::LOCALE_OF_ISSUE, &mut fld.0)?;
946 Ok(fld.value().to_string())
947 }
948
949
950 pub fn has_locale_of_issue(&self) -> bool {
952 self.message.body.has(tag::LOCALE_OF_ISSUE)
953 }
954
955
956
957
958 pub fn set_margin_ratio(&mut self, val: Decimal, scale: i32) {
960 self.message.body.set_field(tag::MARGIN_RATIO, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
961 }
962
963 pub fn get_margin_ratio(&self) -> Result<Decimal, MessageRejectErrorEnum> {
965 let mut fld = field::MarginRatioField::new(Decimal::ZERO, 0);
966 self.message.body.get_field(tag::MARGIN_RATIO, &mut fld.0)?;
967 Ok(fld.value())
968 }
969
970
971 pub fn has_margin_ratio(&self) -> bool {
973 self.message.body.has(tag::MARGIN_RATIO)
974 }
975
976
977
978
979 pub fn set_maturity_date(&mut self, v: String) {
981 self.message.body.set_field(tag::MATURITY_DATE, FIXString::from(v));
982 }
983
984 pub fn get_maturity_date(&self) -> Result<String, MessageRejectErrorEnum> {
986 let mut fld = field::MaturityDateField::new(String::new());
987 self.message.body.get_field(tag::MATURITY_DATE, &mut fld.0)?;
988 Ok(fld.value().to_string())
989 }
990
991
992 pub fn has_maturity_date(&self) -> bool {
994 self.message.body.has(tag::MATURITY_DATE)
995 }
996
997
998
999
1000 pub fn set_maturity_month_year(&mut self, v: String) {
1002 self.message.body.set_field(tag::MATURITY_MONTH_YEAR, FIXString::from(v));
1003 }
1004
1005 pub fn get_maturity_month_year(&self) -> Result<String, MessageRejectErrorEnum> {
1007 let mut fld = field::MaturityMonthYearField::new(String::new());
1008 self.message.body.get_field(tag::MATURITY_MONTH_YEAR, &mut fld.0)?;
1009 Ok(fld.value().to_string())
1010 }
1011
1012
1013 pub fn has_maturity_month_year(&self) -> bool {
1015 self.message.body.has(tag::MATURITY_MONTH_YEAR)
1016 }
1017
1018
1019
1020
1021 pub fn set_no_events(&mut self, v: isize) {
1023 self.message.body.set_field(tag::NO_EVENTS, fixer::fix_int::FIXInt::from(v));
1024 }
1025
1026 pub fn get_no_events(&self) -> Result<isize, MessageRejectErrorEnum> {
1028 let mut fld = field::NoEventsField::new(0);
1029 self.message.body.get_field(tag::NO_EVENTS, &mut fld.0)?;
1030 Ok(fld.value())
1031 }
1032
1033
1034 pub fn has_no_events(&self) -> bool {
1036 self.message.body.has(tag::NO_EVENTS)
1037 }
1038
1039
1040
1041
1042 pub fn set_no_ioi_qualifiers(&mut self, v: isize) {
1044 self.message.body.set_field(tag::NO_IOI_QUALIFIERS, fixer::fix_int::FIXInt::from(v));
1045 }
1046
1047 pub fn get_no_ioi_qualifiers(&self) -> Result<isize, MessageRejectErrorEnum> {
1049 let mut fld = field::NoIOIQualifiersField::new(0);
1050 self.message.body.get_field(tag::NO_IOI_QUALIFIERS, &mut fld.0)?;
1051 Ok(fld.value())
1052 }
1053
1054
1055 pub fn has_no_ioi_qualifiers(&self) -> bool {
1057 self.message.body.has(tag::NO_IOI_QUALIFIERS)
1058 }
1059
1060
1061
1062
1063 pub fn set_no_legs(&mut self, v: isize) {
1065 self.message.body.set_field(tag::NO_LEGS, fixer::fix_int::FIXInt::from(v));
1066 }
1067
1068 pub fn get_no_legs(&self) -> Result<isize, MessageRejectErrorEnum> {
1070 let mut fld = field::NoLegsField::new(0);
1071 self.message.body.get_field(tag::NO_LEGS, &mut fld.0)?;
1072 Ok(fld.value())
1073 }
1074
1075
1076 pub fn has_no_legs(&self) -> bool {
1078 self.message.body.has(tag::NO_LEGS)
1079 }
1080
1081
1082
1083
1084 pub fn set_no_routing_i_ds(&mut self, v: isize) {
1086 self.message.body.set_field(tag::NO_ROUTING_I_DS, fixer::fix_int::FIXInt::from(v));
1087 }
1088
1089 pub fn get_no_routing_i_ds(&self) -> Result<isize, MessageRejectErrorEnum> {
1091 let mut fld = field::NoRoutingIDsField::new(0);
1092 self.message.body.get_field(tag::NO_ROUTING_I_DS, &mut fld.0)?;
1093 Ok(fld.value())
1094 }
1095
1096
1097 pub fn has_no_routing_i_ds(&self) -> bool {
1099 self.message.body.has(tag::NO_ROUTING_I_DS)
1100 }
1101
1102
1103
1104
1105 pub fn set_no_security_alt_id(&mut self, v: isize) {
1107 self.message.body.set_field(tag::NO_SECURITY_ALT_ID, fixer::fix_int::FIXInt::from(v));
1108 }
1109
1110 pub fn get_no_security_alt_id(&self) -> Result<isize, MessageRejectErrorEnum> {
1112 let mut fld = field::NoSecurityAltIDField::new(0);
1113 self.message.body.get_field(tag::NO_SECURITY_ALT_ID, &mut fld.0)?;
1114 Ok(fld.value())
1115 }
1116
1117
1118 pub fn has_no_security_alt_id(&self) -> bool {
1120 self.message.body.has(tag::NO_SECURITY_ALT_ID)
1121 }
1122
1123
1124
1125
1126 pub fn set_no_stipulations(&mut self, v: isize) {
1128 self.message.body.set_field(tag::NO_STIPULATIONS, fixer::fix_int::FIXInt::from(v));
1129 }
1130
1131 pub fn get_no_stipulations(&self) -> Result<isize, MessageRejectErrorEnum> {
1133 let mut fld = field::NoStipulationsField::new(0);
1134 self.message.body.get_field(tag::NO_STIPULATIONS, &mut fld.0)?;
1135 Ok(fld.value())
1136 }
1137
1138
1139 pub fn has_no_stipulations(&self) -> bool {
1141 self.message.body.has(tag::NO_STIPULATIONS)
1142 }
1143
1144
1145
1146
1147 pub fn set_no_underlyings(&mut self, v: isize) {
1149 self.message.body.set_field(tag::NO_UNDERLYINGS, fixer::fix_int::FIXInt::from(v));
1150 }
1151
1152 pub fn get_no_underlyings(&self) -> Result<isize, MessageRejectErrorEnum> {
1154 let mut fld = field::NoUnderlyingsField::new(0);
1155 self.message.body.get_field(tag::NO_UNDERLYINGS, &mut fld.0)?;
1156 Ok(fld.value())
1157 }
1158
1159
1160 pub fn has_no_underlyings(&self) -> bool {
1162 self.message.body.has(tag::NO_UNDERLYINGS)
1163 }
1164
1165
1166
1167
1168 pub fn set_opt_attribute(&mut self, v: String) {
1170 self.message.body.set_field(tag::OPT_ATTRIBUTE, FIXString::from(v));
1171 }
1172
1173 pub fn get_opt_attribute(&self) -> Result<String, MessageRejectErrorEnum> {
1175 let mut fld = field::OptAttributeField::new(String::new());
1176 self.message.body.get_field(tag::OPT_ATTRIBUTE, &mut fld.0)?;
1177 Ok(fld.value().to_string())
1178 }
1179
1180
1181 pub fn has_opt_attribute(&self) -> bool {
1183 self.message.body.has(tag::OPT_ATTRIBUTE)
1184 }
1185
1186
1187
1188
1189 pub fn set_order_percent(&mut self, val: Decimal, scale: i32) {
1191 self.message.body.set_field(tag::ORDER_PERCENT, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1192 }
1193
1194 pub fn get_order_percent(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1196 let mut fld = field::OrderPercentField::new(Decimal::ZERO, 0);
1197 self.message.body.get_field(tag::ORDER_PERCENT, &mut fld.0)?;
1198 Ok(fld.value())
1199 }
1200
1201
1202 pub fn has_order_percent(&self) -> bool {
1204 self.message.body.has(tag::ORDER_PERCENT)
1205 }
1206
1207
1208
1209
1210 pub fn set_order_qty(&mut self, val: Decimal, scale: i32) {
1212 self.message.body.set_field(tag::ORDER_QTY, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1213 }
1214
1215 pub fn get_order_qty(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1217 let mut fld = field::OrderQtyField::new(Decimal::ZERO, 0);
1218 self.message.body.get_field(tag::ORDER_QTY, &mut fld.0)?;
1219 Ok(fld.value())
1220 }
1221
1222
1223 pub fn has_order_qty(&self) -> bool {
1225 self.message.body.has(tag::ORDER_QTY)
1226 }
1227
1228
1229
1230
1231 pub fn set_pool(&mut self, v: String) {
1233 self.message.body.set_field(tag::POOL, FIXString::from(v));
1234 }
1235
1236 pub fn get_pool(&self) -> Result<String, MessageRejectErrorEnum> {
1238 let mut fld = field::PoolField::new(String::new());
1239 self.message.body.get_field(tag::POOL, &mut fld.0)?;
1240 Ok(fld.value().to_string())
1241 }
1242
1243
1244 pub fn has_pool(&self) -> bool {
1246 self.message.body.has(tag::POOL)
1247 }
1248
1249
1250
1251
1252 pub fn set_price(&mut self, val: Decimal, scale: i32) {
1254 self.message.body.set_field(tag::PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1255 }
1256
1257 pub fn get_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1259 let mut fld = field::PriceField::new(Decimal::ZERO, 0);
1260 self.message.body.get_field(tag::PRICE, &mut fld.0)?;
1261 Ok(fld.value())
1262 }
1263
1264
1265 pub fn has_price(&self) -> bool {
1267 self.message.body.has(tag::PRICE)
1268 }
1269
1270
1271
1272
1273 pub fn set_price_type(&mut self, v: isize) {
1275 self.message.body.set_field(tag::PRICE_TYPE, fixer::fix_int::FIXInt::from(v));
1276 }
1277
1278 pub fn get_price_type(&self) -> Result<isize, MessageRejectErrorEnum> {
1280 let mut fld = field::PriceTypeField::new(0);
1281 self.message.body.get_field(tag::PRICE_TYPE, &mut fld.0)?;
1282 Ok(fld.value())
1283 }
1284
1285
1286 pub fn has_price_type(&self) -> bool {
1288 self.message.body.has(tag::PRICE_TYPE)
1289 }
1290
1291
1292
1293
1294 pub fn set_product(&mut self, v: isize) {
1296 self.message.body.set_field(tag::PRODUCT, fixer::fix_int::FIXInt::from(v));
1297 }
1298
1299 pub fn get_product(&self) -> Result<isize, MessageRejectErrorEnum> {
1301 let mut fld = field::ProductField::new(0);
1302 self.message.body.get_field(tag::PRODUCT, &mut fld.0)?;
1303 Ok(fld.value())
1304 }
1305
1306
1307 pub fn has_product(&self) -> bool {
1309 self.message.body.has(tag::PRODUCT)
1310 }
1311
1312
1313
1314
1315 pub fn set_qty_type(&mut self, v: isize) {
1317 self.message.body.set_field(tag::QTY_TYPE, fixer::fix_int::FIXInt::from(v));
1318 }
1319
1320 pub fn get_qty_type(&self) -> Result<isize, MessageRejectErrorEnum> {
1322 let mut fld = field::QtyTypeField::new(0);
1323 self.message.body.get_field(tag::QTY_TYPE, &mut fld.0)?;
1324 Ok(fld.value())
1325 }
1326
1327
1328 pub fn has_qty_type(&self) -> bool {
1330 self.message.body.has(tag::QTY_TYPE)
1331 }
1332
1333
1334
1335
1336 pub fn set_redemption_date(&mut self, v: String) {
1338 self.message.body.set_field(tag::REDEMPTION_DATE, FIXString::from(v));
1339 }
1340
1341 pub fn get_redemption_date(&self) -> Result<String, MessageRejectErrorEnum> {
1343 let mut fld = field::RedemptionDateField::new(String::new());
1344 self.message.body.get_field(tag::REDEMPTION_DATE, &mut fld.0)?;
1345 Ok(fld.value().to_string())
1346 }
1347
1348
1349 pub fn has_redemption_date(&self) -> bool {
1351 self.message.body.has(tag::REDEMPTION_DATE)
1352 }
1353
1354
1355
1356
1357 pub fn set_repo_collateral_security_type(&mut self, v: isize) {
1359 self.message.body.set_field(tag::REPO_COLLATERAL_SECURITY_TYPE, fixer::fix_int::FIXInt::from(v));
1360 }
1361
1362 pub fn get_repo_collateral_security_type(&self) -> Result<isize, MessageRejectErrorEnum> {
1364 let mut fld = field::RepoCollateralSecurityTypeField::new(0);
1365 self.message.body.get_field(tag::REPO_COLLATERAL_SECURITY_TYPE, &mut fld.0)?;
1366 Ok(fld.value())
1367 }
1368
1369
1370 pub fn has_repo_collateral_security_type(&self) -> bool {
1372 self.message.body.has(tag::REPO_COLLATERAL_SECURITY_TYPE)
1373 }
1374
1375
1376
1377
1378 pub fn set_repurchase_rate(&mut self, val: Decimal, scale: i32) {
1380 self.message.body.set_field(tag::REPURCHASE_RATE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1381 }
1382
1383 pub fn get_repurchase_rate(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1385 let mut fld = field::RepurchaseRateField::new(Decimal::ZERO, 0);
1386 self.message.body.get_field(tag::REPURCHASE_RATE, &mut fld.0)?;
1387 Ok(fld.value())
1388 }
1389
1390
1391 pub fn has_repurchase_rate(&self) -> bool {
1393 self.message.body.has(tag::REPURCHASE_RATE)
1394 }
1395
1396
1397
1398
1399 pub fn set_repurchase_term(&mut self, v: isize) {
1401 self.message.body.set_field(tag::REPURCHASE_TERM, fixer::fix_int::FIXInt::from(v));
1402 }
1403
1404 pub fn get_repurchase_term(&self) -> Result<isize, MessageRejectErrorEnum> {
1406 let mut fld = field::RepurchaseTermField::new(0);
1407 self.message.body.get_field(tag::REPURCHASE_TERM, &mut fld.0)?;
1408 Ok(fld.value())
1409 }
1410
1411
1412 pub fn has_repurchase_term(&self) -> bool {
1414 self.message.body.has(tag::REPURCHASE_TERM)
1415 }
1416
1417
1418
1419
1420 pub fn set_rounding_direction(&mut self, v: String) {
1422 self.message.body.set_field(tag::ROUNDING_DIRECTION, FIXString::from(v));
1423 }
1424
1425 pub fn get_rounding_direction(&self) -> Result<String, MessageRejectErrorEnum> {
1427 let mut fld = field::RoundingDirectionField::new(String::new());
1428 self.message.body.get_field(tag::ROUNDING_DIRECTION, &mut fld.0)?;
1429 Ok(fld.value().to_string())
1430 }
1431
1432
1433 pub fn has_rounding_direction(&self) -> bool {
1435 self.message.body.has(tag::ROUNDING_DIRECTION)
1436 }
1437
1438
1439
1440
1441 pub fn set_rounding_modulus(&mut self, val: Decimal, scale: i32) {
1443 self.message.body.set_field(tag::ROUNDING_MODULUS, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1444 }
1445
1446 pub fn get_rounding_modulus(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1448 let mut fld = field::RoundingModulusField::new(Decimal::ZERO, 0);
1449 self.message.body.get_field(tag::ROUNDING_MODULUS, &mut fld.0)?;
1450 Ok(fld.value())
1451 }
1452
1453
1454 pub fn has_rounding_modulus(&self) -> bool {
1456 self.message.body.has(tag::ROUNDING_MODULUS)
1457 }
1458
1459
1460
1461
1462 pub fn set_security_desc(&mut self, v: String) {
1464 self.message.body.set_field(tag::SECURITY_DESC, FIXString::from(v));
1465 }
1466
1467 pub fn get_security_desc(&self) -> Result<String, MessageRejectErrorEnum> {
1469 let mut fld = field::SecurityDescField::new(String::new());
1470 self.message.body.get_field(tag::SECURITY_DESC, &mut fld.0)?;
1471 Ok(fld.value().to_string())
1472 }
1473
1474
1475 pub fn has_security_desc(&self) -> bool {
1477 self.message.body.has(tag::SECURITY_DESC)
1478 }
1479
1480
1481
1482
1483 pub fn set_security_exchange(&mut self, v: String) {
1485 self.message.body.set_field(tag::SECURITY_EXCHANGE, FIXString::from(v));
1486 }
1487
1488 pub fn get_security_exchange(&self) -> Result<String, MessageRejectErrorEnum> {
1490 let mut fld = field::SecurityExchangeField::new(String::new());
1491 self.message.body.get_field(tag::SECURITY_EXCHANGE, &mut fld.0)?;
1492 Ok(fld.value().to_string())
1493 }
1494
1495
1496 pub fn has_security_exchange(&self) -> bool {
1498 self.message.body.has(tag::SECURITY_EXCHANGE)
1499 }
1500
1501
1502
1503
1504 pub fn set_security_id(&mut self, v: String) {
1506 self.message.body.set_field(tag::SECURITY_ID, FIXString::from(v));
1507 }
1508
1509 pub fn get_security_id(&self) -> Result<String, MessageRejectErrorEnum> {
1511 let mut fld = field::SecurityIDField::new(String::new());
1512 self.message.body.get_field(tag::SECURITY_ID, &mut fld.0)?;
1513 Ok(fld.value().to_string())
1514 }
1515
1516
1517 pub fn has_security_id(&self) -> bool {
1519 self.message.body.has(tag::SECURITY_ID)
1520 }
1521
1522
1523
1524
1525 pub fn set_security_id_source(&mut self, v: String) {
1527 self.message.body.set_field(tag::SECURITY_ID_SOURCE, FIXString::from(v));
1528 }
1529
1530 pub fn get_security_id_source(&self) -> Result<String, MessageRejectErrorEnum> {
1532 let mut fld = field::SecurityIDSourceField::new(String::new());
1533 self.message.body.get_field(tag::SECURITY_ID_SOURCE, &mut fld.0)?;
1534 Ok(fld.value().to_string())
1535 }
1536
1537
1538 pub fn has_security_id_source(&self) -> bool {
1540 self.message.body.has(tag::SECURITY_ID_SOURCE)
1541 }
1542
1543
1544
1545
1546 pub fn set_security_sub_type(&mut self, v: String) {
1548 self.message.body.set_field(tag::SECURITY_SUB_TYPE, FIXString::from(v));
1549 }
1550
1551 pub fn get_security_sub_type(&self) -> Result<String, MessageRejectErrorEnum> {
1553 let mut fld = field::SecuritySubTypeField::new(String::new());
1554 self.message.body.get_field(tag::SECURITY_SUB_TYPE, &mut fld.0)?;
1555 Ok(fld.value().to_string())
1556 }
1557
1558
1559 pub fn has_security_sub_type(&self) -> bool {
1561 self.message.body.has(tag::SECURITY_SUB_TYPE)
1562 }
1563
1564
1565
1566
1567 pub fn set_security_type(&mut self, v: String) {
1569 self.message.body.set_field(tag::SECURITY_TYPE, FIXString::from(v));
1570 }
1571
1572 pub fn get_security_type(&self) -> Result<String, MessageRejectErrorEnum> {
1574 let mut fld = field::SecurityTypeField::new(String::new());
1575 self.message.body.get_field(tag::SECURITY_TYPE, &mut fld.0)?;
1576 Ok(fld.value().to_string())
1577 }
1578
1579
1580 pub fn has_security_type(&self) -> bool {
1582 self.message.body.has(tag::SECURITY_TYPE)
1583 }
1584
1585
1586
1587
1588 pub fn set_side(&mut self, v: String) {
1590 self.message.body.set_field(tag::SIDE, FIXString::from(v));
1591 }
1592
1593 pub fn get_side(&self) -> Result<String, MessageRejectErrorEnum> {
1595 let mut fld = field::SideField::new(String::new());
1596 self.message.body.get_field(tag::SIDE, &mut fld.0)?;
1597 Ok(fld.value().to_string())
1598 }
1599
1600
1601 pub fn has_side(&self) -> bool {
1603 self.message.body.has(tag::SIDE)
1604 }
1605
1606
1607
1608
1609 pub fn set_spread(&mut self, val: Decimal, scale: i32) {
1611 self.message.body.set_field(tag::SPREAD, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1612 }
1613
1614 pub fn get_spread(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1616 let mut fld = field::SpreadField::new(Decimal::ZERO, 0);
1617 self.message.body.get_field(tag::SPREAD, &mut fld.0)?;
1618 Ok(fld.value())
1619 }
1620
1621
1622 pub fn has_spread(&self) -> bool {
1624 self.message.body.has(tag::SPREAD)
1625 }
1626
1627
1628
1629
1630 pub fn set_start_date(&mut self, v: String) {
1632 self.message.body.set_field(tag::START_DATE, FIXString::from(v));
1633 }
1634
1635 pub fn get_start_date(&self) -> Result<String, MessageRejectErrorEnum> {
1637 let mut fld = field::StartDateField::new(String::new());
1638 self.message.body.get_field(tag::START_DATE, &mut fld.0)?;
1639 Ok(fld.value().to_string())
1640 }
1641
1642
1643 pub fn has_start_date(&self) -> bool {
1645 self.message.body.has(tag::START_DATE)
1646 }
1647
1648
1649
1650
1651 pub fn set_state_or_province_of_issue(&mut self, v: String) {
1653 self.message.body.set_field(tag::STATE_OR_PROVINCE_OF_ISSUE, FIXString::from(v));
1654 }
1655
1656 pub fn get_state_or_province_of_issue(&self) -> Result<String, MessageRejectErrorEnum> {
1658 let mut fld = field::StateOrProvinceOfIssueField::new(String::new());
1659 self.message.body.get_field(tag::STATE_OR_PROVINCE_OF_ISSUE, &mut fld.0)?;
1660 Ok(fld.value().to_string())
1661 }
1662
1663
1664 pub fn has_state_or_province_of_issue(&self) -> bool {
1666 self.message.body.has(tag::STATE_OR_PROVINCE_OF_ISSUE)
1667 }
1668
1669
1670
1671
1672 pub fn set_strike_currency(&mut self, v: String) {
1674 self.message.body.set_field(tag::STRIKE_CURRENCY, FIXString::from(v));
1675 }
1676
1677 pub fn get_strike_currency(&self) -> Result<String, MessageRejectErrorEnum> {
1679 let mut fld = field::StrikeCurrencyField::new(String::new());
1680 self.message.body.get_field(tag::STRIKE_CURRENCY, &mut fld.0)?;
1681 Ok(fld.value().to_string())
1682 }
1683
1684
1685 pub fn has_strike_currency(&self) -> bool {
1687 self.message.body.has(tag::STRIKE_CURRENCY)
1688 }
1689
1690
1691
1692
1693 pub fn set_strike_price(&mut self, val: Decimal, scale: i32) {
1695 self.message.body.set_field(tag::STRIKE_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1696 }
1697
1698 pub fn get_strike_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1700 let mut fld = field::StrikePriceField::new(Decimal::ZERO, 0);
1701 self.message.body.get_field(tag::STRIKE_PRICE, &mut fld.0)?;
1702 Ok(fld.value())
1703 }
1704
1705
1706 pub fn has_strike_price(&self) -> bool {
1708 self.message.body.has(tag::STRIKE_PRICE)
1709 }
1710
1711
1712
1713
1714 pub fn set_symbol(&mut self, v: String) {
1716 self.message.body.set_field(tag::SYMBOL, FIXString::from(v));
1717 }
1718
1719 pub fn get_symbol(&self) -> Result<String, MessageRejectErrorEnum> {
1721 let mut fld = field::SymbolField::new(String::new());
1722 self.message.body.get_field(tag::SYMBOL, &mut fld.0)?;
1723 Ok(fld.value().to_string())
1724 }
1725
1726
1727 pub fn has_symbol(&self) -> bool {
1729 self.message.body.has(tag::SYMBOL)
1730 }
1731
1732
1733
1734
1735 pub fn set_symbol_sfx(&mut self, v: String) {
1737 self.message.body.set_field(tag::SYMBOL_SFX, FIXString::from(v));
1738 }
1739
1740 pub fn get_symbol_sfx(&self) -> Result<String, MessageRejectErrorEnum> {
1742 let mut fld = field::SymbolSfxField::new(String::new());
1743 self.message.body.get_field(tag::SYMBOL_SFX, &mut fld.0)?;
1744 Ok(fld.value().to_string())
1745 }
1746
1747
1748 pub fn has_symbol_sfx(&self) -> bool {
1750 self.message.body.has(tag::SYMBOL_SFX)
1751 }
1752
1753
1754
1755
1756 pub fn set_termination_type(&mut self, v: isize) {
1758 self.message.body.set_field(tag::TERMINATION_TYPE, fixer::fix_int::FIXInt::from(v));
1759 }
1760
1761 pub fn get_termination_type(&self) -> Result<isize, MessageRejectErrorEnum> {
1763 let mut fld = field::TerminationTypeField::new(0);
1764 self.message.body.get_field(tag::TERMINATION_TYPE, &mut fld.0)?;
1765 Ok(fld.value())
1766 }
1767
1768
1769 pub fn has_termination_type(&self) -> bool {
1771 self.message.body.has(tag::TERMINATION_TYPE)
1772 }
1773
1774
1775
1776
1777 pub fn set_text(&mut self, v: String) {
1779 self.message.body.set_field(tag::TEXT, FIXString::from(v));
1780 }
1781
1782 pub fn get_text(&self) -> Result<String, MessageRejectErrorEnum> {
1784 let mut fld = field::TextField::new(String::new());
1785 self.message.body.get_field(tag::TEXT, &mut fld.0)?;
1786 Ok(fld.value().to_string())
1787 }
1788
1789
1790 pub fn has_text(&self) -> bool {
1792 self.message.body.has(tag::TEXT)
1793 }
1794
1795
1796
1797
1798 pub fn set_transact_time(&mut self, v: Timestamp) {
1800 self.message.body.set_field(tag::TRANSACT_TIME, fixer::fix_utc_timestamp::FIXUTCTimestamp {
1801 time: v,
1802 precision: fixer::fix_utc_timestamp::TimestampPrecision::Millis,
1803 });
1804 }
1805
1806 pub fn get_transact_time(&self) -> Result<Timestamp, MessageRejectErrorEnum> {
1808 let mut fld = field::TransactTimeField::new(Timestamp::UNIX_EPOCH);
1809 self.message.body.get_field(tag::TRANSACT_TIME, &mut fld.0)?;
1810 Ok(fld.value())
1811 }
1812
1813
1814 pub fn has_transact_time(&self) -> bool {
1816 self.message.body.has(tag::TRANSACT_TIME)
1817 }
1818
1819
1820
1821
1822 pub fn set_url_link(&mut self, v: String) {
1824 self.message.body.set_field(tag::URL_LINK, FIXString::from(v));
1825 }
1826
1827 pub fn get_url_link(&self) -> Result<String, MessageRejectErrorEnum> {
1829 let mut fld = field::URLLinkField::new(String::new());
1830 self.message.body.get_field(tag::URL_LINK, &mut fld.0)?;
1831 Ok(fld.value().to_string())
1832 }
1833
1834
1835 pub fn has_url_link(&self) -> bool {
1837 self.message.body.has(tag::URL_LINK)
1838 }
1839
1840
1841
1842
1843 pub fn set_valid_until_time(&mut self, v: Timestamp) {
1845 self.message.body.set_field(tag::VALID_UNTIL_TIME, fixer::fix_utc_timestamp::FIXUTCTimestamp {
1846 time: v,
1847 precision: fixer::fix_utc_timestamp::TimestampPrecision::Millis,
1848 });
1849 }
1850
1851 pub fn get_valid_until_time(&self) -> Result<Timestamp, MessageRejectErrorEnum> {
1853 let mut fld = field::ValidUntilTimeField::new(Timestamp::UNIX_EPOCH);
1854 self.message.body.get_field(tag::VALID_UNTIL_TIME, &mut fld.0)?;
1855 Ok(fld.value())
1856 }
1857
1858
1859 pub fn has_valid_until_time(&self) -> bool {
1861 self.message.body.has(tag::VALID_UNTIL_TIME)
1862 }
1863
1864
1865
1866
1867 pub fn set_yield(&mut self, val: Decimal, scale: i32) {
1869 self.message.body.set_field(tag::YIELD, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1870 }
1871
1872 pub fn get_yield(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1874 let mut fld = field::YieldField::new(Decimal::ZERO, 0);
1875 self.message.body.get_field(tag::YIELD, &mut fld.0)?;
1876 Ok(fld.value())
1877 }
1878
1879
1880 pub fn has_yield(&self) -> bool {
1882 self.message.body.has(tag::YIELD)
1883 }
1884
1885
1886
1887
1888 pub fn set_yield_calc_date(&mut self, v: String) {
1890 self.message.body.set_field(tag::YIELD_CALC_DATE, FIXString::from(v));
1891 }
1892
1893 pub fn get_yield_calc_date(&self) -> Result<String, MessageRejectErrorEnum> {
1895 let mut fld = field::YieldCalcDateField::new(String::new());
1896 self.message.body.get_field(tag::YIELD_CALC_DATE, &mut fld.0)?;
1897 Ok(fld.value().to_string())
1898 }
1899
1900
1901 pub fn has_yield_calc_date(&self) -> bool {
1903 self.message.body.has(tag::YIELD_CALC_DATE)
1904 }
1905
1906
1907
1908
1909 pub fn set_yield_redemption_date(&mut self, v: String) {
1911 self.message.body.set_field(tag::YIELD_REDEMPTION_DATE, FIXString::from(v));
1912 }
1913
1914 pub fn get_yield_redemption_date(&self) -> Result<String, MessageRejectErrorEnum> {
1916 let mut fld = field::YieldRedemptionDateField::new(String::new());
1917 self.message.body.get_field(tag::YIELD_REDEMPTION_DATE, &mut fld.0)?;
1918 Ok(fld.value().to_string())
1919 }
1920
1921
1922 pub fn has_yield_redemption_date(&self) -> bool {
1924 self.message.body.has(tag::YIELD_REDEMPTION_DATE)
1925 }
1926
1927
1928
1929
1930 pub fn set_yield_redemption_price(&mut self, val: Decimal, scale: i32) {
1932 self.message.body.set_field(tag::YIELD_REDEMPTION_PRICE, fixer::fix_decimal::FIXDecimal { decimal: val, scale });
1933 }
1934
1935 pub fn get_yield_redemption_price(&self) -> Result<Decimal, MessageRejectErrorEnum> {
1937 let mut fld = field::YieldRedemptionPriceField::new(Decimal::ZERO, 0);
1938 self.message.body.get_field(tag::YIELD_REDEMPTION_PRICE, &mut fld.0)?;
1939 Ok(fld.value())
1940 }
1941
1942
1943 pub fn has_yield_redemption_price(&self) -> bool {
1945 self.message.body.has(tag::YIELD_REDEMPTION_PRICE)
1946 }
1947
1948
1949
1950
1951 pub fn set_yield_redemption_price_type(&mut self, v: isize) {
1953 self.message.body.set_field(tag::YIELD_REDEMPTION_PRICE_TYPE, fixer::fix_int::FIXInt::from(v));
1954 }
1955
1956 pub fn get_yield_redemption_price_type(&self) -> Result<isize, MessageRejectErrorEnum> {
1958 let mut fld = field::YieldRedemptionPriceTypeField::new(0);
1959 self.message.body.get_field(tag::YIELD_REDEMPTION_PRICE_TYPE, &mut fld.0)?;
1960 Ok(fld.value())
1961 }
1962
1963
1964 pub fn has_yield_redemption_price_type(&self) -> bool {
1966 self.message.body.has(tag::YIELD_REDEMPTION_PRICE_TYPE)
1967 }
1968
1969
1970
1971
1972 pub fn set_yield_type(&mut self, v: String) {
1974 self.message.body.set_field(tag::YIELD_TYPE, FIXString::from(v));
1975 }
1976
1977 pub fn get_yield_type(&self) -> Result<String, MessageRejectErrorEnum> {
1979 let mut fld = field::YieldTypeField::new(String::new());
1980 self.message.body.get_field(tag::YIELD_TYPE, &mut fld.0)?;
1981 Ok(fld.value().to_string())
1982 }
1983
1984
1985 pub fn has_yield_type(&self) -> bool {
1987 self.message.body.has(tag::YIELD_TYPE)
1988 }
1989
1990
1991}
1992
1993pub type RouteOut = fn(msg: IOI, session_id: SessionID) -> Result<(), MessageRejectErrorEnum>;
1995
1996pub type Route = (&'static str, &'static str, Box<dyn Fn(&Message, SessionID) -> Result<(), MessageRejectErrorEnum> + Send>);
1998
1999pub fn route(router: RouteOut) -> Route {
2001 let r = move |msg: &Message, session_id: SessionID| -> Result<(), MessageRejectErrorEnum> {
2002 router(IOI::from_message(msg.clone()), session_id)
2003 };
2004 ("FIX.4.4", "6", Box::new(r))
2005}