(payload: &[u8], key: &str)
| 377 | } |
| 378 | |
| 379 | fn decode_count_field(payload: &[u8], key: &str) -> Option<usize> { |
| 380 | if payload.is_empty() { |
| 381 | return Some(0); |
| 382 | } |
| 383 | |
| 384 | let json = nodedb_types::json_from_msgpack(payload) |
| 385 | .ok() |
| 386 | .or_else(|| sonic_rs::from_slice::<serde_json::Value>(payload).ok())?; |
| 387 | json.get(key).and_then(|v| v.as_u64()).map(|v| v as usize) |
| 388 | } |
| 389 | |
| 390 | fn encode_msgpack_array(rows: &[Vec<u8>]) -> Vec<u8> { |
| 391 | let total_data: usize = rows.iter().map(|row| row.len()).sum(); |
no test coverage detected