分页助手加 debug_assert,默认 limit 配到上限之上会在测试期炸出来
- arguments::page 增加 debug_assert!(default_limit <= max_limit):默认值本身越界时不再让省略 limit 的请求静默地每次都报 LimitOutOfRange - 文档注释写清这条调用点契约;三个列表工具当前都满足(50/100 对 100) 验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: agent::direct_tools_mcp:: 72 passed / 0 failed;cargo fmt --check 通过
This commit is contained in:
@@ -58,12 +58,16 @@ pub(crate) struct ToolPage {
|
||||
}
|
||||
|
||||
/// 解析 `offset`/`limit`。分页规则在三个列表工具之间一致,只有默认值与上限不同。
|
||||
///
|
||||
/// 调用点必须保证 `default_limit <= max_limit`:否则省略 `limit` 的请求会拿一个本身就越界的
|
||||
/// 默认值去撞上限、每次都失败。这里用 `debug_assert` 让配错在测试期就炸出来。
|
||||
pub(crate) fn page(
|
||||
arguments: &Value,
|
||||
default_limit: usize,
|
||||
max_limit: usize,
|
||||
max_offset: Option<usize>,
|
||||
) -> Result<ToolPage, ToolPageRejection> {
|
||||
debug_assert!(default_limit <= max_limit);
|
||||
let offset = arguments
|
||||
.get("offset")
|
||||
.filter(|value| !value.is_null())
|
||||
|
||||
Reference in New Issue
Block a user