@@ -166,43 +166,42 @@ pub(crate) fn write_bitmap_to_bytes(
166166 containers. push ( container) ;
167167 }
168168 // https://github.com/RoaringBitmap/RoaringFormatSpec
169- use byteorder:: { WriteBytesExt , LE } ;
170169 const SERIAL_COOKIE_NO_RUNCONTAINER : u32 = 12346 ;
171170 const SERIAL_COOKIE : u32 = 12347 ;
172171 const NO_OFFSET_THRESHOLD : u32 = 4 ;
173172 let size: u32 = containers. len ( ) . try_into ( ) . unwrap ( ) ;
174173 let start_offset = if has_run {
175- out. write_u32 :: < LE > ( SERIAL_COOKIE | ( ( size - 1 ) << 16 ) ) ?;
174+ out. write_all ( & u32 :: to_le_bytes ( SERIAL_COOKIE | ( ( size - 1 ) << 16 ) ) ) ?;
176175 for set in containers. chunks ( 8 ) {
177176 let mut b = 0 ;
178177 for ( i, container) in set. iter ( ) . enumerate ( ) {
179178 if matches ! ( container, & Container :: Run ( ..) ) {
180179 b |= 1 << i;
181180 }
182181 }
183- out. write_u8 ( b ) ?;
182+ out. write_all ( & [ b ] ) ?;
184183 }
185184 if size < NO_OFFSET_THRESHOLD {
186185 4 + 4 * size + ( ( size + 7 ) / 8 )
187186 } else {
188187 4 + 8 * size + ( ( size + 7 ) / 8 )
189188 }
190189 } else {
191- out. write_u32 :: < LE > ( SERIAL_COOKIE_NO_RUNCONTAINER ) ?;
192- out. write_u32 :: < LE > ( containers. len ( ) . try_into ( ) . unwrap ( ) ) ?;
190+ out. write_all ( & u32 :: to_le_bytes ( SERIAL_COOKIE_NO_RUNCONTAINER ) ) ?;
191+ out. write_all ( & u32 :: to_le_bytes ( containers. len ( ) . try_into ( ) . unwrap ( ) ) ) ?;
193192 4 + 4 + 4 * size + 4 * size
194193 } ;
195194 for ( & key, container) in keys. iter ( ) . zip ( & containers) {
196195 // descriptive header
197196 let key: u32 = key. into ( ) ;
198197 let count: u32 = container. popcount ( ) - 1 ;
199- out. write_u32 :: < LE > ( ( count << 16 ) | key) ?;
198+ out. write_all ( & u32 :: to_le_bytes ( ( count << 16 ) | key) ) ?;
200199 }
201200 if !has_run || size >= NO_OFFSET_THRESHOLD {
202201 // offset header
203202 let mut starting_offset = start_offset;
204203 for container in & containers {
205- out. write_u32 :: < LE > ( starting_offset) ?;
204+ out. write_all ( & u32 :: to_le_bytes ( starting_offset) ) ?;
206205 starting_offset += match container {
207206 Container :: Bits ( _) => 8192u32 ,
208207 Container :: Array ( array) => u32:: try_from ( array. len ( ) ) . unwrap ( ) * 2 ,
@@ -214,19 +213,19 @@ pub(crate) fn write_bitmap_to_bytes(
214213 match container {
215214 Container :: Bits ( bits) => {
216215 for chunk in bits. iter ( ) {
217- out. write_u64 :: < LE > ( * chunk) ?;
216+ out. write_all ( & u64 :: to_le_bytes ( * chunk) ) ?;
218217 }
219218 }
220219 Container :: Array ( array) => {
221220 for value in array. iter ( ) {
222- out. write_u16 :: < LE > ( * value) ?;
221+ out. write_all ( & u16 :: to_le_bytes ( * value) ) ?;
223222 }
224223 }
225224 Container :: Run ( runs) => {
226- out. write_u16 :: < LE > ( ( runs. len ( ) ) . try_into ( ) . unwrap ( ) ) ?;
225+ out. write_all ( & u16 :: to_le_bytes ( runs. len ( ) . try_into ( ) . unwrap ( ) ) ) ?;
227226 for ( start, lenm1) in runs. iter ( ) . copied ( ) {
228- out. write_u16 :: < LE > ( start) ?;
229- out. write_u16 :: < LE > ( lenm1) ?;
227+ out. write_all ( & u16 :: to_le_bytes ( start) ) ?;
228+ out. write_all ( & u16 :: to_le_bytes ( lenm1) ) ?;
230229 }
231230 }
232231 }
0 commit comments