url_query_string 0.1.0

A Rust procedural macro for generating methods to serialize structs into URL query strings. Provides seamless integration with serde and supports customizable serialization formats like camelCase and snake_case.
Documentation
use serde::Serialize;
use url_query_string::ToQueryString;

#[derive(Serialize, ToQueryString)]
#[serde(rename_all = "camelCase")]
struct TestStruct {
    pub page: Option<u32>,
    pub page_size: Option<u32>,
    pub id: Option<String>,
    pub user_id: Option<String>,
}

#[test]
fn test_to_query_string() {
    let instance = TestStruct {
        page: Some(1),
        page_size: Some(20),
        id: Some("test_id".to_string()),
        user_id: Some("user_123".to_string()),
    };

    let query_string = instance.to_query_string();
    assert_eq!(
        query_string,
        "page=1&pageSize=20&id=test_id&userId=user_123"
    );
}

#[test]
fn test_try_to_query_string_ok() {
    let instance = TestStruct {
        page: Some(1),
        page_size: Some(20),
        id: Some("test_id".to_string()),
        user_id: Some("user_123".to_string()),
    };

    let result = instance.try_to_query_string();
    assert!(result.is_ok());
    assert_eq!(
        result.unwrap(),
        "page=1&pageSize=20&id=test_id&userId=user_123"
    );
}