chore: record final sgclaw superrpa runtime verification

This commit is contained in:
zyl
2026-03-30 00:06:33 +08:00
parent 0fc6fe0c8e
commit c7d3d45c68
3 changed files with 94 additions and 43 deletions

View File

@@ -179,9 +179,14 @@ fn resolve_column_order(
return None;
}
let provided_set = provided_columns
let canonicalized_columns = provided_columns
.iter()
.map(|value| value.trim().to_string())
.map(|value| canonicalize_column_name(value))
.collect::<Option<Vec<_>>>()?;
let provided_set = canonicalized_columns
.iter()
.map(|value| value.to_string())
.collect::<BTreeSet<_>>();
let expected_set = expected_columns
.iter()
@@ -195,13 +200,22 @@ fn resolve_column_order(
expected_columns
.iter()
.map(|expected| {
provided_columns
canonicalized_columns
.iter()
.position(|provided| provided.trim() == expected)
.position(|provided| *provided == expected)
})
.collect::<Option<Vec<_>>>()
}
fn canonicalize_column_name(value: &str) -> Option<&'static str> {
match value.trim().to_ascii_lowercase().as_str() {
"rank" | "排名" | "名次" | "序号" => Some("rank"),
"title" | "标题" | "题目" | "问题" => Some("title"),
"heat" | "热度" | "热值" => Some("heat"),
_ => None,
}
}
fn reorder_row(row: &[Value], column_order: &[usize]) -> Vec<Value> {
column_order
.iter()