(reader: &mut R)
| 123 | |
| 124 | impl<'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 | } |
no test coverage detected