如何在activx处理程序中设置查询参数的默认选项



我想为activx中的查询值设置默认值。

我知道Rust标准库中有一个用于结构的Default特性,但老实说,我不知道如何在这种情况下应用它。

在我的情况下,请求查询可能提供也可能不提供分页值page和page_size

以下是我要做的:

src/adapter.rs(我的处理程序模块(

pub mod Basic {
#[derive(Deserialize, Default)]
pub struct ListQuery {
page: i64,
per_page: i64,
}
pub async fn articles_list(listQuery: Query<ListQuery>) -> impl Responder {
let query_options = ListQuery;
// should default to { page: 1, per_page: 10 }
// ...
}
}

那么,如果没有给出查询参数,我怎么能得到值为10的per_page呢?

[derive(Default)]宏通过在所有元素上调用::default来派生默认实现。对于i64,这将导致0。您实际想要做的是自己实现Default

#[derive(Deserialize)]
pub struct ListQuery {
page: i64,
per_page: i64,
}
impl Default for ListQuery {
fn default() -> Self {
ListQuery {
page: 1,
per_page: 10
}
}
}

现在,这将为您提供所需的默认值。

最新更新