wolt 0.1.0

A reqwest/tokio based api wrapper for Wolt
Documentation
fn test_menu_results(menu_results: wolt::MenuResults) -> anyhow::Result<()> {
    let extra_keys = menu_results._extra_fields.keys().collect::<Vec<&String>>();
    assert_eq!(extra_keys, Vec::<&String>::new());

    assert_eq!(menu_results.results.len(), 1);

    let menu = menu_results.results.first().unwrap();

    let extra_keys = menu._extra_fields.keys().collect::<Vec<&String>>();
    assert_eq!(extra_keys, Vec::<&String>::new());

    for option in menu.options.iter() {
        let extra_keys = option._extra_fields.keys().collect::<Vec<&String>>();
        assert_eq!(extra_keys, Vec::<&String>::new());

        for value in option.values.iter() {
            let extra_keys = value._extra_fields.keys().collect::<Vec<&String>>();
            assert_eq!(extra_keys, Vec::<&String>::new());
        }
    }

    for category in menu.categories.iter() {
        let extra_keys = category._extra_fields.keys().collect::<Vec<&String>>();
        assert_eq!(extra_keys, Vec::<&String>::new());
    }

    for menu_item in menu.items.iter() {
        let extra_keys = menu_item._extra_fields.keys().collect::<Vec<&String>>();
        assert_eq!(extra_keys, Vec::<&String>::new());

        if let Some(validity) = &menu_item.validity {
            let extra_keys = validity._extra_fields.keys().collect::<Vec<&String>>();
            assert_eq!(extra_keys, Vec::<&String>::new());
        }

        for option in menu_item.options.iter() {
            let extra_keys = option._extra_fields.keys().collect::<Vec<&String>>();
            assert_eq!(extra_keys, Vec::<&String>::new());
        }

        for tag in menu_item.tags.iter() {
            let extra_keys = tag._extra_fields.keys().collect::<Vec<&String>>();
            assert_eq!(extra_keys, Vec::<&String>::new());

            let extra_keys = tag.style._extra_fields.keys().collect::<Vec<&String>>();
            assert_eq!(extra_keys, Vec::<&String>::new());
        }

        for time in menu_item.times.iter() {
            let extra_keys = time._extra_fields.keys().collect::<Vec<&String>>();
            assert_eq!(extra_keys, Vec::<&String>::new());
        }
    }

    Ok(())
}

#[tokio::test]
async fn tallinn_mcdonalds_viru() -> anyhow::Result<()> {
    Ok(test_menu_results(
        wolt::get_menu("5af075fd1198ae000ce50ced").await?,
    )?)
}

#[tokio::test]
async fn tallinn_818() -> anyhow::Result<()> {
    Ok(test_menu_results(
        wolt::get_menu("5ff58b74421e9ce09bacb9bb").await?,
    )?)
}

#[tokio::test]
async fn tartu_kauss_kampus() -> anyhow::Result<()> {
    Ok(test_menu_results(
        wolt::get_menu("5ccaa02f88269fabc47961aa").await?,
    )?)
}