How do you route queries in the rust library Warp?

I spent my whole day trying to route /search?query=Google.

    let search = warp::path("search")
        .map(|query: String| {

This however, results in a "Invalid query string", when I go http://localhost:3030/search?query=asgf.
This has to be the worst error message I ever received.

You need to use a type that deserializes from key value pairs with the query filter. String deserializes as a single value, which doesn't work with the filter.

The examples show using a HashMap to get dynamic query values and a custom struct using the serde derive macros to get known query values.