Skip to content

Custom derive to automatically implement serialization to http query params for arbitrary structs.

License

Notifications You must be signed in to change notification settings

NotBad4U/query_params

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Rust version

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:

  1. Add query_params to your Cargo.toml
  • manually

  • or with cargo-edit:

    cargo add derive_builder

  1. Annotate your struct with #[derive(QueryParams)]

Disclaimer ❗

  • Tuple structs and unit structs are not supported as they have no field names.

Detailed explaination of all features and tips for troubleshooting.

Contribution

Feel free to make a pull request 😃

About

Custom derive to automatically implement serialization to http query params for arbitrary structs.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages