(
&self,
dim_bufman: &BufferManager,
data_bufmans: &BufferManagerFactory<VersionNumber>,
cursor: u64,
)
| 10 | |
| 11 | impl<T: InvertedIndexSerialize, const N: usize> InvertedIndexSerialize for AtomicArray<T, N> { |
| 12 | fn serialize( |
| 13 | &self, |
| 14 | dim_bufman: &BufferManager, |
| 15 | data_bufmans: &BufferManagerFactory<VersionNumber>, |
| 16 | cursor: u64, |
| 17 | ) -> Result<u32, BufIoError> { |
| 18 | let start = dim_bufman.cursor_position(cursor)?; |
| 19 | dim_bufman.update_with_cursor(cursor, &vec![u8::MAX; 4 * N])?; |
| 20 | dim_bufman.seek_with_cursor(cursor, start)?; |
| 21 | |
| 22 | for i in 0..N { |
| 23 | let Some(item_ptr) = self.get(i) else { |
| 24 | dim_bufman.update_with_cursor(cursor, &[u8::MAX; 4])?; |
| 25 | continue; |
| 26 | }; |
| 27 | |
| 28 | let item = unsafe { &*item_ptr }; |
| 29 | let current_pos = dim_bufman.cursor_position(cursor)?; |
| 30 | let item_offset = item.serialize(dim_bufman, data_bufmans, cursor)?; |
| 31 | dim_bufman.seek_with_cursor(cursor, current_pos)?; |
| 32 | |
| 33 | dim_bufman.update_u32_with_cursor(cursor, item_offset)?; |
| 34 | } |
| 35 | |
| 36 | Ok(start as u32) |
| 37 | } |
| 38 | |
| 39 | fn deserialize( |
| 40 | dim_bufman: &BufferManager, |
nothing calls this directly
no test coverage detected