Extract `(system_time_ms, valid_time_ms)` from a serialized row payload. See module docs for the contract.
(payload: Option<&[u8]>)
| 30 | /// Extract `(system_time_ms, valid_time_ms)` from a serialized row |
| 31 | /// payload. See module docs for the contract. |
| 32 | pub fn extract_stamps(payload: Option<&[u8]>) -> (Option<i64>, Option<i64>) { |
| 33 | let bytes = match payload { |
| 34 | Some(b) => b, |
| 35 | None => return (None, None), |
| 36 | }; |
| 37 | let map = match deserialize_event_payload(bytes) { |
| 38 | Some(m) => m, |
| 39 | None => return (None, None), |
| 40 | }; |
| 41 | ( |
| 42 | extract_i64(&map, TS_SYSTEM), |
| 43 | extract_i64(&map, TS_VALID_FROM), |
| 44 | ) |
| 45 | } |
| 46 | |
| 47 | fn extract_i64(map: &serde_json::Map<String, serde_json::Value>, key: &str) -> Option<i64> { |
| 48 | map.get(key).and_then(|v| v.as_i64()) |