(
local_vshard_id: u32,
payload: &[u8],
executor: &Arc<dyn ArrayLocalExecutor>,
)
| 83 | } |
| 84 | |
| 85 | async fn handle_agg( |
| 86 | local_vshard_id: u32, |
| 87 | payload: &[u8], |
| 88 | executor: &Arc<dyn ArrayLocalExecutor>, |
| 89 | ) -> Result<Vec<u8>> { |
| 90 | let req: ArrayShardAggReq = |
| 91 | zerompk::from_msgpack(payload).map_err(|e| ClusterError::Codec { |
| 92 | detail: format!("ArrayShardAggReq decode: {e}"), |
| 93 | })?; |
| 94 | |
| 95 | let partials = executor.exec_agg(&req).await?; |
| 96 | |
| 97 | let resp = ArrayShardAggResp { |
| 98 | shard_id: local_vshard_id, |
| 99 | partials, |
| 100 | truncated_before_horizon: false, |
| 101 | }; |
| 102 | serialise(resp) |
| 103 | } |
| 104 | |
| 105 | async fn handle_put( |
| 106 | local_vshard_id: u32, |
no test coverage detected