MCPcopy Create free account
hub / github.com/cosdata/cosdata / serialize

Method serialize

src/models/serializer/inverted/atomic_array.rs:12–37  ·  view source on GitHub ↗
(
        &self,
        dim_bufman: &BufferManager,
        data_bufmans: &BufferManagerFactory<VersionNumber>,
        cursor: u64,
    )

Source from the content-addressed store, hash-verified

10
11impl<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,

Callers

nothing calls this directly

Calls 5

cursor_positionMethod · 0.80
update_with_cursorMethod · 0.80
seek_with_cursorMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected