mwapi_responses 0.5.1

Automatically generate strict types for MediaWiki API responses
Documentation
// Autogenerated by gen_tests.py
use mwapi_responses::prelude::*;

mod test_client;

#[query(action = "query", prop = "categories")]
struct Response0;

#[tokio::test]
async fn query_categories_default() {
    let mut params = Response0::params().to_vec();
    params.push((
        "titles",
        "Albert Einstein|This article does not exist, please",
    ));
    let resp: Response0 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 2);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", prop = "categories", clprop = "hidden")]
struct Response1;

#[tokio::test]
async fn query_categories_hidden() {
    let mut params = Response1::params().to_vec();
    params.push((
        "titles",
        "Albert Einstein|This article does not exist, please",
    ));
    let resp: Response1 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 2);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", prop = "categories", clprop = "sortkey")]
struct Response2;

#[tokio::test]
async fn query_categories_sortkey() {
    let mut params = Response2::params().to_vec();
    params.push((
        "titles",
        "Albert Einstein|This article does not exist, please",
    ));
    let resp: Response2 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 2);
    assert!(!resp.continue_.is_empty());
}

#[query(action = "query", prop = "categories", clprop = "timestamp")]
struct Response3;

#[tokio::test]
async fn query_categories_timestamp() {
    let mut params = Response3::params().to_vec();
    params.push((
        "titles",
        "Albert Einstein|This article does not exist, please",
    ));
    let resp: Response3 = test_client::test(&params).await.unwrap();
    assert_eq!(resp.items().len(), 2);
    assert!(!resp.continue_.is_empty());
}