1 unstable release
Uses old Rust 2015
0.1.0 | Aug 19, 2017 |
---|
#858 in #macro-derive
219 downloads per month
Used in 2 crates
(via apify-client)
9KB
83 lines
QueryParams Derive
Rust custom derive to automatically implement serialization to http query params for arbitrary structs. A simple #[derive(QueryParams)]
will generate a function to_query_params
for your struct.
How it Works
#[macro_use]
extern crate query_params;
#[derive(QueryParams)]
struct PullRequestsParametersApi {
page: i32,
sort: bool,
direction: String,
state: Vec<String>,
// .. other interesting fields ..
}
fn main() {
let pr = PullRequestsParametersApi {
page: 2,
sort: true,
direction: "asc",
state: vec!["open".to_string(), "closed".to_string()],
}
println!("{}", pr.to_query_params()); // => ?page=2&sort=true&direction=asc&state=open,closed
}
Get Started
It's as simple as two steps:
- Add
query_params
to yourCargo.toml
-
manually
-
or with cargo-edit:
cargo add derive_builder
- Annotate your struct with
#[derive(QueryParams)]
Disclaimer ❗
- Tuple structs and unit structs are not supported as they have no field names.
Documentation
Detailed explaination of all features and tips for troubleshooting.
Contribution
Feel free to make a pull request 😃
Dependencies
~2MB
~42K SLoC