Skip to main content

bytey_byte_buffer/byte_buffer_write/
arrays.rs

1use crate::{byte_buffer::ByteBuffer, byte_buffer_write::ByteBufferWrite, error::Result};
2
3impl<T: ByteBufferWrite, const N: usize> ByteBufferWrite for [T; N] {
4    #[inline]
5    fn write_to_bytey_buffer(&self, buffer: &mut ByteBuffer) -> Result<()> {
6        (self.len() as u64).write_to_bytey_buffer(buffer)?;
7
8        for e in self {
9            e.write_to_bytey_buffer(buffer)?;
10        }
11
12        Ok(())
13    }
14
15    #[inline]
16    fn write_to_bytey_buffer_le(&self, buffer: &mut ByteBuffer) -> Result<()> {
17        (self.len() as u64).write_to_bytey_buffer_le(buffer)?;
18
19        for e in self {
20            e.write_to_bytey_buffer_le(buffer)?;
21        }
22
23        Ok(())
24    }
25
26    #[inline]
27    fn write_to_bytey_buffer_be(&self, buffer: &mut ByteBuffer) -> Result<()> {
28        (self.len() as u64).write_to_bytey_buffer_be(buffer)?;
29
30        for e in self {
31            e.write_to_bytey_buffer_be(buffer)?;
32        }
33
34        Ok(())
35    }
36}
37
38impl<T: ByteBufferWrite> ByteBufferWrite for [T] {
39    #[inline]
40    fn write_to_bytey_buffer(&self, buffer: &mut ByteBuffer) -> Result<()> {
41        (self.len() as u64).write_to_bytey_buffer(buffer)?;
42
43        for e in self {
44            e.write_to_bytey_buffer(buffer)?;
45        }
46
47        Ok(())
48    }
49
50    #[inline]
51    fn write_to_bytey_buffer_le(&self, buffer: &mut ByteBuffer) -> Result<()> {
52        (self.len() as u64).write_to_bytey_buffer_le(buffer)?;
53
54        for e in self {
55            e.write_to_bytey_buffer_le(buffer)?;
56        }
57
58        Ok(())
59    }
60
61    #[inline]
62    fn write_to_bytey_buffer_be(&self, buffer: &mut ByteBuffer) -> Result<()> {
63        (self.len() as u64).write_to_bytey_buffer_be(buffer)?;
64
65        for e in self {
66            e.write_to_bytey_buffer_be(buffer)?;
67        }
68
69        Ok(())
70    }
71}
72
73impl<T: ByteBufferWrite> ByteBufferWrite for Vec<T> {
74    #[inline]
75    fn write_to_bytey_buffer(&self, buffer: &mut ByteBuffer) -> Result<()> {
76        (self.len() as u64).write_to_bytey_buffer(buffer)?;
77
78        for e in self {
79            e.write_to_bytey_buffer(buffer)?;
80        }
81
82        Ok(())
83    }
84
85    #[inline]
86    fn write_to_bytey_buffer_le(&self, buffer: &mut ByteBuffer) -> Result<()> {
87        (self.len() as u64).write_to_bytey_buffer_le(buffer)?;
88
89        for e in self {
90            e.write_to_bytey_buffer_le(buffer)?;
91        }
92
93        Ok(())
94    }
95
96    #[inline]
97    fn write_to_bytey_buffer_be(&self, buffer: &mut ByteBuffer) -> Result<()> {
98        (self.len() as u64).write_to_bytey_buffer_be(buffer)?;
99
100        for e in self {
101            e.write_to_bytey_buffer_be(buffer)?;
102        }
103
104        Ok(())
105    }
106}
107
108impl<T: ByteBufferWrite> ByteBufferWrite for &Vec<T> {
109    #[inline]
110    fn write_to_bytey_buffer(&self, buffer: &mut ByteBuffer) -> Result<()> {
111        (self.len() as u64).write_to_bytey_buffer(buffer)?;
112
113        for e in *self {
114            e.write_to_bytey_buffer(buffer)?;
115        }
116
117        Ok(())
118    }
119
120    #[inline]
121    fn write_to_bytey_buffer_le(&self, buffer: &mut ByteBuffer) -> Result<()> {
122        (self.len() as u64).write_to_bytey_buffer_le(buffer)?;
123
124        for e in *self {
125            e.write_to_bytey_buffer_le(buffer)?;
126        }
127
128        Ok(())
129    }
130
131    #[inline]
132    fn write_to_bytey_buffer_be(&self, buffer: &mut ByteBuffer) -> Result<()> {
133        (self.len() as u64).write_to_bytey_buffer_be(buffer)?;
134
135        for e in *self {
136            e.write_to_bytey_buffer_be(buffer)?;
137        }
138
139        Ok(())
140    }
141}