nautilus_binance/spot/sbe/generated/
group_size_encoding_codec.rs1pub use decoder::GroupSizeEncodingDecoder;
2pub use encoder::GroupSizeEncodingEncoder;
3
4use super::*;
5
6pub const ENCODED_LENGTH: usize = 6;
7
8pub mod encoder {
9 use super::*;
10
11 #[derive(Debug, Default)]
12 pub struct GroupSizeEncodingEncoder<P> {
13 parent: Option<P>,
14 offset: usize,
15 }
16
17 impl<'a, P> Writer<'a> for GroupSizeEncodingEncoder<P>
18 where
19 P: Writer<'a> + Default,
20 {
21 #[inline]
22 fn get_buf_mut(&mut self) -> &mut WriteBuf<'a> {
23 if let Some(parent) = self.parent.as_mut() {
24 parent.get_buf_mut()
25 } else {
26 panic!("parent was None")
27 }
28 }
29 }
30
31 impl<'a, P> GroupSizeEncodingEncoder<P>
32 where
33 P: Writer<'a> + Default,
34 {
35 pub fn wrap(mut self, parent: P, offset: usize) -> Self {
36 self.parent = Some(parent);
37 self.offset = offset;
38 self
39 }
40
41 #[inline]
42 pub fn parent(&mut self) -> SbeResult<P> {
43 self.parent.take().ok_or(SbeErr::ParentNotSet)
44 }
45
46 #[inline]
56 pub fn block_length(&mut self, value: u16) {
57 let offset = self.offset;
58 self.get_buf_mut().put_u16_at(offset, value);
59 }
60
61 #[inline]
71 pub fn num_in_group(&mut self, value: u32) {
72 let offset = self.offset + 2;
73 self.get_buf_mut().put_u32_at(offset, value);
74 }
75 }
76} pub mod decoder {
79 use super::*;
80
81 #[derive(Debug, Default)]
82 pub struct GroupSizeEncodingDecoder<P> {
83 parent: Option<P>,
84 offset: usize,
85 }
86
87 impl<'a, P> ActingVersion for GroupSizeEncodingDecoder<P>
88 where
89 P: Reader<'a> + ActingVersion + Default,
90 {
91 #[inline]
92 fn acting_version(&self) -> u16 {
93 self.parent.as_ref().unwrap().acting_version()
94 }
95 }
96
97 impl<'a, P> Reader<'a> for GroupSizeEncodingDecoder<P>
98 where
99 P: Reader<'a> + Default,
100 {
101 #[inline]
102 fn get_buf(&self) -> &ReadBuf<'a> {
103 self.parent.as_ref().expect("parent missing").get_buf()
104 }
105 }
106
107 impl<'a, P> GroupSizeEncodingDecoder<P>
108 where
109 P: Reader<'a> + Default,
110 {
111 pub fn wrap(mut self, parent: P, offset: usize) -> Self {
112 self.parent = Some(parent);
113 self.offset = offset;
114 self
115 }
116
117 #[inline]
118 pub fn parent(&mut self) -> SbeResult<P> {
119 self.parent.take().ok_or(SbeErr::ParentNotSet)
120 }
121
122 #[inline]
124 pub fn block_length(&self) -> u16 {
125 self.get_buf().get_u16_at(self.offset)
126 }
127
128 #[inline]
130 pub fn num_in_group(&self) -> u32 {
131 self.get_buf().get_u32_at(self.offset + 2)
132 }
133 }
134}