3 个不稳定版本
使用旧的 Rust 2015
0.1.1 | 2020 年 1 月 11 日 |
---|---|
0.1.0 | 2020 年 1 月 11 日 |
0.0.1 | 2020 年 1 月 11 日 |
#1955 在 开发工具
12KB
150 行
query-params-serialize
查询参数的 Serde 序列化器。
lib.rs
:
将任意结构体转换为 HTTP 查询参数
此 crate 通过使用自定义 derive 的过程宏生成一个函数,将任意结构体的字段序列化为 HTTP 查询参数 String
。查询参数 String
的返回值旨在与任何 Rust 客户端 HTTP 库一起使用。
入门
将 query_params
添加到您的 Cargo.toml
依赖项中。
概述
#[macro_use]
extern crate query_params;
extern crate query_params_trait;
use query_params_trait::QueryParams;
#[derive(QueryParams)]
struct PullRequestsParametersApi {
page: i32,
sort: bool,
direction: String,
state: Vec<String>,
// .. other interesting fields ..
}
let pr = PullRequestsParametersApi {
page: 2,
sort: true,
direction: "asc".to_string(),
state: vec!["open".to_string(), "closed".to_string()],
};
pr.query_params();
生成内容
#[derive(QueryParams)]
struct PullRequestsParametersApi {
page: i32,
sort: bool,
direction: String,
state: Vec<String>,
// .. other interesting fields ..
}
// Code generate
impl PullRequestsParametersApi {
fn query_params(&self) -> String {
let mut buf = String::from("?");
// Stuff to fill buf with the struct fields content
return buf
}
// expect "?page=2&sort=true&direction=asc&state=open,closed" with the example above
}
依赖项
~1.5MB
~36K SLoC