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

Method serialize

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

Source from the content-addressed store, hash-verified

13
14impl InvertedIndexSerialize for InvertedIndexNodeData {
15 fn serialize(
16 &self,
17 dim_bufman: &BufferManager,
18 data_bufmans: &BufferManagerFactory<VersionNumber>,
19 cursor: u64,
20 ) -> Result<u32, BufIoError> {
21 let start = dim_bufman.cursor_position(cursor)?;
22 for i in 0..=self.max_key {
23 let optional_result = self.map.with_value(&i, |vec| {
24 let offset = vec.serialize(dim_bufman, data_bufmans, cursor)?;
25 dim_bufman.update_u32_with_cursor(cursor, offset)?;
26 dim_bufman.update_u32_with_cursor(cursor, *vec.version)
27 });
28
29 if let Some(result) = optional_result {
30 result?;
31 } else {
32 dim_bufman.update_u32_with_cursor(cursor, u32::MAX)?;
33 dim_bufman.update_u32_with_cursor(cursor, u32::MAX)?;
34 continue;
35 };
36 }
37 Ok(start as u32)
38 }
39
40 fn deserialize(
41 dim_bufman: &BufferManager,

Calls 3

cursor_positionMethod · 0.80
with_valueMethod · 0.80