2个版本
0.0.4 | 2023年10月18日 |
---|---|
0.0.3 | 2023年10月18日 |
0.0.2 |
|
#17 在 #参数
67 每月下载次数
在 2 个crate中使用(通过 to-query-params)
13KB
172 行
to-query-params
一个过程宏和特性,用于将任意结构体转换为Vec<(String, String)>
,用作查询参数,最初是为了方便与Hyper HTTP框架一起使用。
可以使用urlencoding crate中的to_encoded_params
方法对查询参数进行url编码,而默认的to_query_params
方法不进行url编码。
用法
use query_params::{ToQueryParams, QueryParams};
// Eq and PartialEq are just for assertions
#[derive(QueryParams, Debug, PartialEq, Eq)]
struct ProductRequest {
#[query(required)] // fields that aren't Option<T> must be marked as required
id: i32,
#[query(required, rename = "type")]
product_type: String,
min_price: Option<i32>,
max_price: Option<i32>,
}
pub fn main() {
let request = ProductRequest {
id: 999,
product_type: "accessory".to_string(),
min_price: None,
max_price: Some(100),
};
let expected = vec![
("id".into(), "999".into()),
("type".into(), "accessory".into()),
("max_price".into(), "100".into())
];
let query_params = request.to_query_params();
assert_eq!(expected, query_params);
}
lib.rs
:
QueryParams是一个过程宏,用于生成一个针对Hyper
的表示,该表示可以将该结构体作为查询参数轻松附加到Hyper框架中的查询参数。 此crate仅用于由QueryParams
crate测试和导出,不应直接使用。
依赖关系
~280–730KB
~18K SLoC