use qql::executor::BackendResponse;
use qql_plan::semantic::PlanPointId;
use serde_json::Value;
pub fn extract_scroll_page(response: &BackendResponse) -> (Vec<Value>, Option<PlanPointId>) {
let points = response
.data
.hits()
.map(|hits| {
hits.iter()
.filter_map(|hit| serde_json::to_value(hit).ok())
.collect()
})
.unwrap_or_default();
(points, None)
}
pub fn json_to_plan_point_id(v: &Value) -> Option<PlanPointId> {
match v {
Value::Number(n) => n.as_u64().map(PlanPointId::Number),
Value::String(s) => Some(PlanPointId::String(s.clone())),
_ => None,
}
}