Skip to main content

nautilus_binance/spot/sbe/generated/
account_commission_response_codec.rs

1pub use decoder::AccountCommissionResponseDecoder;
2pub use encoder::AccountCommissionResponseEncoder;
3
4use super::*;
5pub use super::{SBE_SCHEMA_ID, SBE_SCHEMA_VERSION, SBE_SEMANTIC_VERSION};
6
7pub const SBE_BLOCK_LENGTH: u16 = 108;
8pub const SBE_TEMPLATE_ID: u16 = 405;
9
10pub mod encoder {
11    use message_header_codec::*;
12
13    use super::*;
14
15    #[derive(Debug, Default)]
16    pub struct AccountCommissionResponseEncoder<'a> {
17        buf: WriteBuf<'a>,
18        initial_offset: usize,
19        offset: usize,
20        limit: usize,
21    }
22
23    impl<'a> Writer<'a> for AccountCommissionResponseEncoder<'a> {
24        #[inline]
25        fn get_buf_mut(&mut self) -> &mut WriteBuf<'a> {
26            &mut self.buf
27        }
28    }
29
30    impl<'a> Encoder<'a> for AccountCommissionResponseEncoder<'a> {
31        #[inline]
32        fn get_limit(&self) -> usize {
33            self.limit
34        }
35
36        #[inline]
37        fn set_limit(&mut self, limit: usize) {
38            self.limit = limit;
39        }
40    }
41
42    impl<'a> AccountCommissionResponseEncoder<'a> {
43        pub fn wrap(mut self, buf: WriteBuf<'a>, offset: usize) -> Self {
44            let limit = offset + SBE_BLOCK_LENGTH as usize;
45            self.buf = buf;
46            self.initial_offset = offset;
47            self.offset = offset;
48            self.limit = limit;
49            self
50        }
51
52        #[inline]
53        pub fn encoded_length(&self) -> usize {
54            self.limit - self.offset
55        }
56
57        pub fn header(self, offset: usize) -> MessageHeaderEncoder<Self> {
58            let mut header = MessageHeaderEncoder::default().wrap(self, offset);
59            header.block_length(SBE_BLOCK_LENGTH);
60            header.template_id(SBE_TEMPLATE_ID);
61            header.schema_id(SBE_SCHEMA_ID);
62            header.version(SBE_SCHEMA_VERSION);
63            header
64        }
65
66        /// primitive field 'commissionExponent'
67        /// - min value: -127
68        /// - max value: 127
69        /// - null value: -128_i8
70        /// - characterEncoding: null
71        /// - semanticType: null
72        /// - encodedOffset: 0
73        /// - encodedLength: 1
74        /// - version: 0
75        #[inline]
76        pub fn commission_exponent(&mut self, value: i8) {
77            let offset = self.offset;
78            self.get_buf_mut().put_i8_at(offset, value);
79        }
80
81        /// primitive field 'discountExponent'
82        /// - min value: -127
83        /// - max value: 127
84        /// - null value: -128_i8
85        /// - characterEncoding: null
86        /// - semanticType: null
87        /// - encodedOffset: 1
88        /// - encodedLength: 1
89        /// - version: 0
90        #[inline]
91        pub fn discount_exponent(&mut self, value: i8) {
92            let offset = self.offset + 1;
93            self.get_buf_mut().put_i8_at(offset, value);
94        }
95
96        /// primitive field 'standardCommissionMaker'
97        /// - min value: -9223372036854775807
98        /// - max value: 9223372036854775807
99        /// - null value: -9223372036854775808_i64
100        /// - characterEncoding: null
101        /// - semanticType: null
102        /// - encodedOffset: 2
103        /// - encodedLength: 8
104        /// - version: 0
105        #[inline]
106        pub fn standard_commission_maker(&mut self, value: i64) {
107            let offset = self.offset + 2;
108            self.get_buf_mut().put_i64_at(offset, value);
109        }
110
111        /// primitive field 'standardCommissionTaker'
112        /// - min value: -9223372036854775807
113        /// - max value: 9223372036854775807
114        /// - null value: -9223372036854775808_i64
115        /// - characterEncoding: null
116        /// - semanticType: null
117        /// - encodedOffset: 10
118        /// - encodedLength: 8
119        /// - version: 0
120        #[inline]
121        pub fn standard_commission_taker(&mut self, value: i64) {
122            let offset = self.offset + 10;
123            self.get_buf_mut().put_i64_at(offset, value);
124        }
125
126        /// primitive field 'standardCommissionBuyer'
127        /// - min value: -9223372036854775807
128        /// - max value: 9223372036854775807
129        /// - null value: -9223372036854775808_i64
130        /// - characterEncoding: null
131        /// - semanticType: null
132        /// - encodedOffset: 18
133        /// - encodedLength: 8
134        /// - version: 0
135        #[inline]
136        pub fn standard_commission_buyer(&mut self, value: i64) {
137            let offset = self.offset + 18;
138            self.get_buf_mut().put_i64_at(offset, value);
139        }
140
141        /// primitive field 'standardCommissionSeller'
142        /// - min value: -9223372036854775807
143        /// - max value: 9223372036854775807
144        /// - null value: -9223372036854775808_i64
145        /// - characterEncoding: null
146        /// - semanticType: null
147        /// - encodedOffset: 26
148        /// - encodedLength: 8
149        /// - version: 0
150        #[inline]
151        pub fn standard_commission_seller(&mut self, value: i64) {
152            let offset = self.offset + 26;
153            self.get_buf_mut().put_i64_at(offset, value);
154        }
155
156        /// primitive field 'taxCommissionMaker'
157        /// - min value: -9223372036854775807
158        /// - max value: 9223372036854775807
159        /// - null value: -9223372036854775808_i64
160        /// - characterEncoding: null
161        /// - semanticType: null
162        /// - encodedOffset: 34
163        /// - encodedLength: 8
164        /// - version: 0
165        #[inline]
166        pub fn tax_commission_maker(&mut self, value: i64) {
167            let offset = self.offset + 34;
168            self.get_buf_mut().put_i64_at(offset, value);
169        }
170
171        /// primitive field 'taxCommissionTaker'
172        /// - min value: -9223372036854775807
173        /// - max value: 9223372036854775807
174        /// - null value: -9223372036854775808_i64
175        /// - characterEncoding: null
176        /// - semanticType: null
177        /// - encodedOffset: 42
178        /// - encodedLength: 8
179        /// - version: 0
180        #[inline]
181        pub fn tax_commission_taker(&mut self, value: i64) {
182            let offset = self.offset + 42;
183            self.get_buf_mut().put_i64_at(offset, value);
184        }
185
186        /// primitive field 'taxCommissionBuyer'
187        /// - min value: -9223372036854775807
188        /// - max value: 9223372036854775807
189        /// - null value: -9223372036854775808_i64
190        /// - characterEncoding: null
191        /// - semanticType: null
192        /// - encodedOffset: 50
193        /// - encodedLength: 8
194        /// - version: 0
195        #[inline]
196        pub fn tax_commission_buyer(&mut self, value: i64) {
197            let offset = self.offset + 50;
198            self.get_buf_mut().put_i64_at(offset, value);
199        }
200
201        /// primitive field 'taxCommissionSeller'
202        /// - min value: -9223372036854775807
203        /// - max value: 9223372036854775807
204        /// - null value: -9223372036854775808_i64
205        /// - characterEncoding: null
206        /// - semanticType: null
207        /// - encodedOffset: 58
208        /// - encodedLength: 8
209        /// - version: 0
210        #[inline]
211        pub fn tax_commission_seller(&mut self, value: i64) {
212            let offset = self.offset + 58;
213            self.get_buf_mut().put_i64_at(offset, value);
214        }
215
216        /// REQUIRED enum
217        #[inline]
218        pub fn discount_enabled_for_account(&mut self, value: bool_enum::BoolEnum) {
219            let offset = self.offset + 66;
220            self.get_buf_mut().put_u8_at(offset, value as u8)
221        }
222
223        /// REQUIRED enum
224        #[inline]
225        pub fn discount_enabled_for_symbol(&mut self, value: bool_enum::BoolEnum) {
226            let offset = self.offset + 67;
227            self.get_buf_mut().put_u8_at(offset, value as u8)
228        }
229
230        /// primitive field 'discount'
231        /// - min value: -9223372036854775807
232        /// - max value: 9223372036854775807
233        /// - null value: -9223372036854775808_i64
234        /// - characterEncoding: null
235        /// - semanticType: null
236        /// - encodedOffset: 68
237        /// - encodedLength: 8
238        /// - version: 0
239        #[inline]
240        pub fn discount(&mut self, value: i64) {
241            let offset = self.offset + 68;
242            self.get_buf_mut().put_i64_at(offset, value);
243        }
244
245        /// primitive field 'specialCommissionMaker'
246        /// - min value: -9223372036854775807
247        /// - max value: 9223372036854775807
248        /// - null value: -9223372036854775808_i64
249        /// - characterEncoding: null
250        /// - semanticType: null
251        /// - encodedOffset: 76
252        /// - encodedLength: 8
253        /// - version: 1
254        #[inline]
255        pub fn special_commission_maker(&mut self, value: i64) {
256            let offset = self.offset + 76;
257            self.get_buf_mut().put_i64_at(offset, value);
258        }
259
260        /// primitive field 'specialCommissionTaker'
261        /// - min value: -9223372036854775807
262        /// - max value: 9223372036854775807
263        /// - null value: -9223372036854775808_i64
264        /// - characterEncoding: null
265        /// - semanticType: null
266        /// - encodedOffset: 84
267        /// - encodedLength: 8
268        /// - version: 1
269        #[inline]
270        pub fn special_commission_taker(&mut self, value: i64) {
271            let offset = self.offset + 84;
272            self.get_buf_mut().put_i64_at(offset, value);
273        }
274
275        /// primitive field 'specialCommissionBuyer'
276        /// - min value: -9223372036854775807
277        /// - max value: 9223372036854775807
278        /// - null value: -9223372036854775808_i64
279        /// - characterEncoding: null
280        /// - semanticType: null
281        /// - encodedOffset: 92
282        /// - encodedLength: 8
283        /// - version: 1
284        #[inline]
285        pub fn special_commission_buyer(&mut self, value: i64) {
286            let offset = self.offset + 92;
287            self.get_buf_mut().put_i64_at(offset, value);
288        }
289
290        /// primitive field 'specialCommissionSeller'
291        /// - min value: -9223372036854775807
292        /// - max value: 9223372036854775807
293        /// - null value: -9223372036854775808_i64
294        /// - characterEncoding: null
295        /// - semanticType: null
296        /// - encodedOffset: 100
297        /// - encodedLength: 8
298        /// - version: 1
299        #[inline]
300        pub fn special_commission_seller(&mut self, value: i64) {
301            let offset = self.offset + 100;
302            self.get_buf_mut().put_i64_at(offset, value);
303        }
304
305        /// VAR_DATA ENCODER - character encoding: 'UTF-8'
306        #[inline]
307        pub fn symbol(&mut self, value: &str) {
308            let limit = self.get_limit();
309            let data_length = value.len();
310            self.set_limit(limit + 1 + data_length);
311            self.get_buf_mut().put_u8_at(limit, data_length as u8);
312            self.get_buf_mut().put_slice_at(limit + 1, value.as_bytes());
313        }
314
315        /// VAR_DATA ENCODER - character encoding: 'UTF-8'
316        #[inline]
317        pub fn discount_asset(&mut self, value: &str) {
318            let limit = self.get_limit();
319            let data_length = value.len();
320            self.set_limit(limit + 1 + data_length);
321            self.get_buf_mut().put_u8_at(limit, data_length as u8);
322            self.get_buf_mut().put_slice_at(limit + 1, value.as_bytes());
323        }
324    }
325} // end encoder
326
327pub mod decoder {
328    use message_header_codec::*;
329
330    use super::*;
331
332    #[derive(Clone, Copy, Debug, Default)]
333    pub struct AccountCommissionResponseDecoder<'a> {
334        buf: ReadBuf<'a>,
335        initial_offset: usize,
336        offset: usize,
337        limit: usize,
338        pub acting_block_length: u16,
339        pub acting_version: u16,
340    }
341
342    impl ActingVersion for AccountCommissionResponseDecoder<'_> {
343        #[inline]
344        fn acting_version(&self) -> u16 {
345            self.acting_version
346        }
347    }
348
349    impl<'a> Reader<'a> for AccountCommissionResponseDecoder<'a> {
350        #[inline]
351        fn get_buf(&self) -> &ReadBuf<'a> {
352            &self.buf
353        }
354    }
355
356    impl<'a> Decoder<'a> for AccountCommissionResponseDecoder<'a> {
357        #[inline]
358        fn get_limit(&self) -> usize {
359            self.limit
360        }
361
362        #[inline]
363        fn set_limit(&mut self, limit: usize) {
364            self.limit = limit;
365        }
366    }
367
368    impl<'a> AccountCommissionResponseDecoder<'a> {
369        pub fn wrap(
370            mut self,
371            buf: ReadBuf<'a>,
372            offset: usize,
373            acting_block_length: u16,
374            acting_version: u16,
375        ) -> Self {
376            let limit = offset + acting_block_length as usize;
377            self.buf = buf;
378            self.initial_offset = offset;
379            self.offset = offset;
380            self.limit = limit;
381            self.acting_block_length = acting_block_length;
382            self.acting_version = acting_version;
383            self
384        }
385
386        #[inline]
387        pub fn encoded_length(&self) -> usize {
388            self.limit - self.offset
389        }
390
391        pub fn header(self, mut header: MessageHeaderDecoder<ReadBuf<'a>>, offset: usize) -> Self {
392            debug_assert_eq!(SBE_TEMPLATE_ID, header.template_id());
393            let acting_block_length = header.block_length();
394            let acting_version = header.version();
395
396            self.wrap(
397                header.parent().unwrap(),
398                offset + message_header_codec::ENCODED_LENGTH,
399                acting_block_length,
400                acting_version,
401            )
402        }
403
404        /// primitive field - 'REQUIRED'
405        #[inline]
406        pub fn commission_exponent(&self) -> i8 {
407            self.get_buf().get_i8_at(self.offset)
408        }
409
410        /// primitive field - 'REQUIRED'
411        #[inline]
412        pub fn discount_exponent(&self) -> i8 {
413            self.get_buf().get_i8_at(self.offset + 1)
414        }
415
416        /// primitive field - 'REQUIRED'
417        #[inline]
418        pub fn standard_commission_maker(&self) -> i64 {
419            self.get_buf().get_i64_at(self.offset + 2)
420        }
421
422        /// primitive field - 'REQUIRED'
423        #[inline]
424        pub fn standard_commission_taker(&self) -> i64 {
425            self.get_buf().get_i64_at(self.offset + 10)
426        }
427
428        /// primitive field - 'REQUIRED'
429        #[inline]
430        pub fn standard_commission_buyer(&self) -> i64 {
431            self.get_buf().get_i64_at(self.offset + 18)
432        }
433
434        /// primitive field - 'REQUIRED'
435        #[inline]
436        pub fn standard_commission_seller(&self) -> i64 {
437            self.get_buf().get_i64_at(self.offset + 26)
438        }
439
440        /// primitive field - 'REQUIRED'
441        #[inline]
442        pub fn tax_commission_maker(&self) -> i64 {
443            self.get_buf().get_i64_at(self.offset + 34)
444        }
445
446        /// primitive field - 'REQUIRED'
447        #[inline]
448        pub fn tax_commission_taker(&self) -> i64 {
449            self.get_buf().get_i64_at(self.offset + 42)
450        }
451
452        /// primitive field - 'REQUIRED'
453        #[inline]
454        pub fn tax_commission_buyer(&self) -> i64 {
455            self.get_buf().get_i64_at(self.offset + 50)
456        }
457
458        /// primitive field - 'REQUIRED'
459        #[inline]
460        pub fn tax_commission_seller(&self) -> i64 {
461            self.get_buf().get_i64_at(self.offset + 58)
462        }
463
464        /// REQUIRED enum
465        #[inline]
466        pub fn discount_enabled_for_account(&self) -> bool_enum::BoolEnum {
467            self.get_buf().get_u8_at(self.offset + 66).into()
468        }
469
470        /// REQUIRED enum
471        #[inline]
472        pub fn discount_enabled_for_symbol(&self) -> bool_enum::BoolEnum {
473            self.get_buf().get_u8_at(self.offset + 67).into()
474        }
475
476        /// primitive field - 'REQUIRED'
477        #[inline]
478        pub fn discount(&self) -> i64 {
479            self.get_buf().get_i64_at(self.offset + 68)
480        }
481
482        /// primitive field - 'OPTIONAL' { null_value: '-9223372036854775808_i64' }
483        #[inline]
484        pub fn special_commission_maker(&self) -> Option<i64> {
485            if self.acting_version() < 1 {
486                return None;
487            }
488
489            let value = self.get_buf().get_i64_at(self.offset + 76);
490            if value == -9223372036854775808_i64 {
491                None
492            } else {
493                Some(value)
494            }
495        }
496
497        /// primitive field - 'OPTIONAL' { null_value: '-9223372036854775808_i64' }
498        #[inline]
499        pub fn special_commission_taker(&self) -> Option<i64> {
500            if self.acting_version() < 1 {
501                return None;
502            }
503
504            let value = self.get_buf().get_i64_at(self.offset + 84);
505            if value == -9223372036854775808_i64 {
506                None
507            } else {
508                Some(value)
509            }
510        }
511
512        /// primitive field - 'OPTIONAL' { null_value: '-9223372036854775808_i64' }
513        #[inline]
514        pub fn special_commission_buyer(&self) -> Option<i64> {
515            if self.acting_version() < 1 {
516                return None;
517            }
518
519            let value = self.get_buf().get_i64_at(self.offset + 92);
520            if value == -9223372036854775808_i64 {
521                None
522            } else {
523                Some(value)
524            }
525        }
526
527        /// primitive field - 'OPTIONAL' { null_value: '-9223372036854775808_i64' }
528        #[inline]
529        pub fn special_commission_seller(&self) -> Option<i64> {
530            if self.acting_version() < 1 {
531                return None;
532            }
533
534            let value = self.get_buf().get_i64_at(self.offset + 100);
535            if value == -9223372036854775808_i64 {
536                None
537            } else {
538                Some(value)
539            }
540        }
541
542        /// VAR_DATA DECODER - character encoding: 'UTF-8'
543        #[inline]
544        pub fn symbol_decoder(&mut self) -> (usize, usize) {
545            let offset = self.get_limit();
546            let data_length = self.get_buf().get_u8_at(offset) as usize;
547            self.set_limit(offset + 1 + data_length);
548            (offset + 1, data_length)
549        }
550
551        #[inline]
552        pub fn symbol_slice(&'a self, coordinates: (usize, usize)) -> &'a [u8] {
553            debug_assert!(self.get_limit() >= coordinates.0 + coordinates.1);
554            self.get_buf().get_slice_at(coordinates.0, coordinates.1)
555        }
556
557        /// VAR_DATA DECODER - character encoding: 'UTF-8'
558        #[inline]
559        pub fn discount_asset_decoder(&mut self) -> (usize, usize) {
560            let offset = self.get_limit();
561            let data_length = self.get_buf().get_u8_at(offset) as usize;
562            self.set_limit(offset + 1 + data_length);
563            (offset + 1, data_length)
564        }
565
566        #[inline]
567        pub fn discount_asset_slice(&'a self, coordinates: (usize, usize)) -> &'a [u8] {
568            debug_assert!(self.get_limit() >= coordinates.0 + coordinates.1);
569            self.get_buf().get_slice_at(coordinates.0, coordinates.1)
570        }
571    }
572} // end decoder