MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / read

Method read

nodedb/src/event/cdc/event.rs:125–181  ·  view source on GitHub ↗
(reader: &mut R)

Source from the content-addressed store, hash-verified

123
124impl<'a> zerompk::FromMessagePack<'a> for CdcEvent {
125 fn read<R: zerompk::Read<'a>>(reader: &mut R) -> zerompk::Result<Self> {
126 let len = reader.read_map_len()?;
127 let mut sequence: u64 = 0;
128 let mut partition: u32 = 0;
129 let mut collection = String::new();
130 let mut op = String::new();
131 let mut row_id = String::new();
132 let mut event_time: u64 = 0;
133 let mut lsn: u64 = 0;
134 let mut tenant_id: u64 = 0;
135 let mut schema_version: u64 = 0;
136 let mut new_value: Option<serde_json::Value> = None;
137 let mut old_value: Option<serde_json::Value> = None;
138 let mut field_diffs: Option<Vec<super::super::field_diff::FieldDiff>> = None;
139 let mut system_time_ms: Option<i64> = None;
140 let mut valid_time_ms: Option<i64> = None;
141 for _ in 0..len {
142 let key = reader.read_string()?.into_owned();
143 match key.as_str() {
144 "sequence" => sequence = reader.read_u64()?,
145 "partition" => partition = reader.read_u32()?,
146 "collection" => collection = reader.read_string()?.into_owned(),
147 "op" => op = reader.read_string()?.into_owned(),
148 "row_id" => row_id = reader.read_string()?.into_owned(),
149 "event_time" => event_time = reader.read_u64()?,
150 "lsn" => lsn = reader.read_u64()?,
151 "tenant_id" => tenant_id = reader.read_u64()?,
152 "schema_version" => schema_version = reader.read_u64()?,
153 "new_value" => new_value = Some(JsonValue::read(reader)?.0),
154 "old_value" => old_value = Some(JsonValue::read(reader)?.0),
155 "field_diffs" => {
156 field_diffs = Some(Vec::<super::super::field_diff::FieldDiff>::read(reader)?);
157 }
158 "system_time_ms" => system_time_ms = Some(reader.read_i64()?),
159 "valid_time_ms" => valid_time_ms = Some(reader.read_i64()?),
160 _ => {
161 JsonValue::read(reader)?;
162 }
163 }
164 }
165 Ok(CdcEvent {
166 sequence,
167 partition,
168 collection,
169 op,
170 row_id,
171 event_time,
172 lsn,
173 tenant_id,
174 schema_version,
175 new_value,
176 old_value,
177 field_diffs,
178 system_time_ms,
179 valid_time_ms,
180 })
181 }
182}

Callers 15

snapshotMethod · 0.45
is_emptyMethod · 0.45
lenMethod · 0.45
getMethod · 0.45
get_for_collectionMethod · 0.45
list_all_enabledMethod · 0.45
list_allMethod · 0.45
list_for_tenantMethod · 0.45
tenant_event_countsMethod · 0.45
partition_watermarkMethod · 0.45
all_partitionsMethod · 0.45
partition_countMethod · 0.45

Calls 2

readFunction · 0.50
as_strMethod · 0.45

Tested by

no test coverage detected