Skip to main content

fixer_fix/fix44/
settlement_instructions.rs

1// Code generated by fixer-gen. DO NOT EDIT.
2#![allow(clippy::new_without_default)]
3#![allow(clippy::needless_pass_by_value)]
4#![allow(clippy::too_many_arguments)]
5#![allow(unused_imports)]
6
7use fixer::message::Message;
8use fixer::fix_string::FIXString;
9use fixer::errors::MessageRejectErrorEnum;
10use fixer::session::session_id::SessionID;
11
12
13use jiff::Timestamp;
14
15use crate::field;
16use crate::tag;
17
18/// `SettlementInstructions` is the `fix44` `SettlementInstructions` type, `MsgType` = T.
19pub struct SettlementInstructions {
20    pub message: Message,
21}
22
23impl SettlementInstructions {
24    /// Creates a new `SettlementInstructions` with required fields.
25    pub fn new(settl_inst_msg_id: field::SettlInstMsgIDField, settl_inst_mode: field::SettlInstModeField, transact_time: field::TransactTimeField) -> Self {
26        let mut msg = Message::new();
27        msg.header.set_field(tag::MSG_TYPE, FIXString::from("T".to_string()));
28
29        msg.body.set_field(tag::SETTL_INST_MSG_ID, settl_inst_msg_id.0);
30
31        msg.body.set_field(tag::SETTL_INST_MODE, settl_inst_mode.0);
32
33        msg.body.set_field(tag::TRANSACT_TIME, transact_time.0);
34
35        Self { message: msg }
36    }
37
38    /// Creates a `SettlementInstructions` from an existing `Message`.
39    pub fn from_message(msg: Message) -> Self {
40        Self { message: msg }
41    }
42
43    /// Returns the underlying `Message`.
44    pub fn to_message(self) -> Message {
45        self.message
46    }
47
48
49
50
51    /// Sets `ClOrdID`, Tag 11.
52    pub fn set_cl_ord_id(&mut self, v: String) {
53        self.message.body.set_field(tag::CL_ORD_ID, FIXString::from(v));
54    }
55
56    /// Gets `ClOrdID`, Tag 11.
57    pub fn get_cl_ord_id(&self) -> Result<String, MessageRejectErrorEnum> {
58        let mut fld = field::ClOrdIDField::new(String::new());
59        self.message.body.get_field(tag::CL_ORD_ID, &mut fld.0)?;
60        Ok(fld.value().to_string())
61    }
62
63
64    /// Returns true if `ClOrdID` is present, Tag 11.
65    pub fn has_cl_ord_id(&self) -> bool {
66        self.message.body.has(tag::CL_ORD_ID)
67    }
68
69
70
71
72    /// Sets `EncodedText`, Tag 355.
73    pub fn set_encoded_text(&mut self, v: String) {
74        self.message.body.set_field(tag::ENCODED_TEXT, FIXString::from(v));
75    }
76
77    /// Gets `EncodedText`, Tag 355.
78    pub fn get_encoded_text(&self) -> Result<String, MessageRejectErrorEnum> {
79        let mut fld = field::EncodedTextField::new(String::new());
80        self.message.body.get_field(tag::ENCODED_TEXT, &mut fld.0)?;
81        Ok(fld.value().to_string())
82    }
83
84
85    /// Returns true if `EncodedText` is present, Tag 355.
86    pub fn has_encoded_text(&self) -> bool {
87        self.message.body.has(tag::ENCODED_TEXT)
88    }
89
90
91
92
93    /// Sets `EncodedTextLen`, Tag 354.
94    pub fn set_encoded_text_len(&mut self, v: isize) {
95        self.message.body.set_field(tag::ENCODED_TEXT_LEN, fixer::fix_int::FIXInt::from(v));
96    }
97
98    /// Gets `EncodedTextLen`, Tag 354.
99    pub fn get_encoded_text_len(&self) -> Result<isize, MessageRejectErrorEnum> {
100        let mut fld = field::EncodedTextLenField::new(0);
101        self.message.body.get_field(tag::ENCODED_TEXT_LEN, &mut fld.0)?;
102        Ok(fld.value())
103    }
104
105
106    /// Returns true if `EncodedTextLen` is present, Tag 354.
107    pub fn has_encoded_text_len(&self) -> bool {
108        self.message.body.has(tag::ENCODED_TEXT_LEN)
109    }
110
111
112
113
114    /// Sets `NoSettlInst`, Tag 778.
115    pub fn set_no_settl_inst(&mut self, v: isize) {
116        self.message.body.set_field(tag::NO_SETTL_INST, fixer::fix_int::FIXInt::from(v));
117    }
118
119    /// Gets `NoSettlInst`, Tag 778.
120    pub fn get_no_settl_inst(&self) -> Result<isize, MessageRejectErrorEnum> {
121        let mut fld = field::NoSettlInstField::new(0);
122        self.message.body.get_field(tag::NO_SETTL_INST, &mut fld.0)?;
123        Ok(fld.value())
124    }
125
126
127    /// Returns true if `NoSettlInst` is present, Tag 778.
128    pub fn has_no_settl_inst(&self) -> bool {
129        self.message.body.has(tag::NO_SETTL_INST)
130    }
131
132
133
134
135    /// Sets `SettlInstMode`, Tag 160.
136    pub fn set_settl_inst_mode(&mut self, v: String) {
137        self.message.body.set_field(tag::SETTL_INST_MODE, FIXString::from(v));
138    }
139
140    /// Gets `SettlInstMode`, Tag 160.
141    pub fn get_settl_inst_mode(&self) -> Result<String, MessageRejectErrorEnum> {
142        let mut fld = field::SettlInstModeField::new(String::new());
143        self.message.body.get_field(tag::SETTL_INST_MODE, &mut fld.0)?;
144        Ok(fld.value().to_string())
145    }
146
147
148    /// Returns true if `SettlInstMode` is present, Tag 160.
149    pub fn has_settl_inst_mode(&self) -> bool {
150        self.message.body.has(tag::SETTL_INST_MODE)
151    }
152
153
154
155
156    /// Sets `SettlInstMsgID`, Tag 777.
157    pub fn set_settl_inst_msg_id(&mut self, v: String) {
158        self.message.body.set_field(tag::SETTL_INST_MSG_ID, FIXString::from(v));
159    }
160
161    /// Gets `SettlInstMsgID`, Tag 777.
162    pub fn get_settl_inst_msg_id(&self) -> Result<String, MessageRejectErrorEnum> {
163        let mut fld = field::SettlInstMsgIDField::new(String::new());
164        self.message.body.get_field(tag::SETTL_INST_MSG_ID, &mut fld.0)?;
165        Ok(fld.value().to_string())
166    }
167
168
169    /// Returns true if `SettlInstMsgID` is present, Tag 777.
170    pub fn has_settl_inst_msg_id(&self) -> bool {
171        self.message.body.has(tag::SETTL_INST_MSG_ID)
172    }
173
174
175
176
177    /// Sets `SettlInstReqID`, Tag 791.
178    pub fn set_settl_inst_req_id(&mut self, v: String) {
179        self.message.body.set_field(tag::SETTL_INST_REQ_ID, FIXString::from(v));
180    }
181
182    /// Gets `SettlInstReqID`, Tag 791.
183    pub fn get_settl_inst_req_id(&self) -> Result<String, MessageRejectErrorEnum> {
184        let mut fld = field::SettlInstReqIDField::new(String::new());
185        self.message.body.get_field(tag::SETTL_INST_REQ_ID, &mut fld.0)?;
186        Ok(fld.value().to_string())
187    }
188
189
190    /// Returns true if `SettlInstReqID` is present, Tag 791.
191    pub fn has_settl_inst_req_id(&self) -> bool {
192        self.message.body.has(tag::SETTL_INST_REQ_ID)
193    }
194
195
196
197
198    /// Sets `SettlInstReqRejCode`, Tag 792.
199    pub fn set_settl_inst_req_rej_code(&mut self, v: isize) {
200        self.message.body.set_field(tag::SETTL_INST_REQ_REJ_CODE, fixer::fix_int::FIXInt::from(v));
201    }
202
203    /// Gets `SettlInstReqRejCode`, Tag 792.
204    pub fn get_settl_inst_req_rej_code(&self) -> Result<isize, MessageRejectErrorEnum> {
205        let mut fld = field::SettlInstReqRejCodeField::new(0);
206        self.message.body.get_field(tag::SETTL_INST_REQ_REJ_CODE, &mut fld.0)?;
207        Ok(fld.value())
208    }
209
210
211    /// Returns true if `SettlInstReqRejCode` is present, Tag 792.
212    pub fn has_settl_inst_req_rej_code(&self) -> bool {
213        self.message.body.has(tag::SETTL_INST_REQ_REJ_CODE)
214    }
215
216
217
218
219    /// Sets `Text`, Tag 58.
220    pub fn set_text(&mut self, v: String) {
221        self.message.body.set_field(tag::TEXT, FIXString::from(v));
222    }
223
224    /// Gets `Text`, Tag 58.
225    pub fn get_text(&self) -> Result<String, MessageRejectErrorEnum> {
226        let mut fld = field::TextField::new(String::new());
227        self.message.body.get_field(tag::TEXT, &mut fld.0)?;
228        Ok(fld.value().to_string())
229    }
230
231
232    /// Returns true if `Text` is present, Tag 58.
233    pub fn has_text(&self) -> bool {
234        self.message.body.has(tag::TEXT)
235    }
236
237
238
239
240    /// Sets `TransactTime`, Tag 60.
241    pub fn set_transact_time(&mut self, v: Timestamp) {
242        self.message.body.set_field(tag::TRANSACT_TIME, fixer::fix_utc_timestamp::FIXUTCTimestamp {
243            time: v,
244            precision: fixer::fix_utc_timestamp::TimestampPrecision::Millis,
245        });
246    }
247
248    /// Gets `TransactTime`, Tag 60.
249    pub fn get_transact_time(&self) -> Result<Timestamp, MessageRejectErrorEnum> {
250        let mut fld = field::TransactTimeField::new(Timestamp::UNIX_EPOCH);
251        self.message.body.get_field(tag::TRANSACT_TIME, &mut fld.0)?;
252        Ok(fld.value())
253    }
254
255
256    /// Returns true if `TransactTime` is present, Tag 60.
257    pub fn has_transact_time(&self) -> bool {
258        self.message.body.has(tag::TRANSACT_TIME)
259    }
260
261
262}
263
264/// `RouteOut` is the callback type for routing `SettlementInstructions` messages.
265pub type RouteOut = fn(msg: SettlementInstructions, session_id: SessionID) -> Result<(), MessageRejectErrorEnum>;
266
267/// Route type returned by the `route` function.
268pub type Route = (&'static str, &'static str, Box<dyn Fn(&Message, SessionID) -> Result<(), MessageRejectErrorEnum> + Send>);
269
270/// Returns the begin string, message type, and route function for `SettlementInstructions`.
271pub fn route(router: RouteOut) -> Route {
272    let r = move |msg: &Message, session_id: SessionID| -> Result<(), MessageRejectErrorEnum> {
273        router(SettlementInstructions::from_message(msg.clone()), session_id)
274    };
275    ("FIX.4.4", "T", Box::new(r))
276}