Query

Derive Macro Query 

Source
#[derive(Query)]
{
    // Attributes available to this derive:
    #[query]
}
Expand description

Derive the ToQueryPairs trait for a struct.

This generates a method to convert the struct into query parameter pairs.

§Struct Attributes

  • #[query(rename_all = "camelCase")] - Rename all fields using a case convention

Supported case conventions:

  • lowercase, UPPERCASE
  • camelCase, PascalCase
  • snake_case, SCREAMING_SNAKE_CASE
  • kebab-case, SCREAMING-KEBAB-CASE

§Field Attributes

  • #[query(skip_none)] - Skip the field if it’s None (default for Option<T>)
  • #[query(rename = "name")] - Use a different name in the query string (overrides rename_all)
  • #[query(format = "csv")] - Collection format for Vec<T> (csv, ssv, pipes, multi)

§Example

use pincer::Query;

#[derive(Query)]
#[query(rename_all = "camelCase")]
struct SearchParams {
    search_query: String,      // becomes "searchQuery"
    page_number: Option<u32>,  // becomes "pageNumber"
    #[query(rename = "limit")] // explicit rename overrides rename_all
    per_page: u32,
    #[query(format = "csv")]
    tag_list: Vec<String>,     // becomes "tagList"
}