Skip to main content

finalize_query

Function finalize_query 

Source
pub fn finalize_query(
    postprocess: &Value,
    items: &mut [Value],
    registry: &Registry,
    fn_registry: Option<&dyn FnRegistry>,
    ctx: Option<&Context>,
) -> Result<(), String>
Expand description

读路径尾部后处理(对应 JS _postprocess 三段时序)

Host 执行完命令序列拿到原始文档后回喂 core:

  1. 逐条 process_node(补默认值 → 同步 fn → 递归下钻 → 权限裁剪)
  2. 批量执行 asyncFn 计算列(权限过滤)
  3. 剥离 asyncFn 依赖注入的字段

postprocess 即 [QueryPlan::to_value] 里的 postprocess 字段({ast, inject} 形状); 传入 null 视为无后处理(绑定层防御性兜底)。

这是「core 内直接执行 asyncFn」的入口(Rust Host / 测试用); 跨 FFI 的绑定应改用 prepare_query + strip_query 两段式。