#query-string #url #serde #hash-map #wrapper #transformation #handle

query_map

VectorMap 是 HashMap> 的泛型包装,用于处理像URL查询字符串这样的不同转换。

7个版本 (破坏性)

0.7.0 2023年7月15日
0.6.0 2022年5月5日
0.5.0 2022年5月4日
0.4.0 2022年2月18日
0.1.0 2022年2月15日

#196编码

Download history 38285/week @ 2024-04-22 43243/week @ 2024-04-29 37621/week @ 2024-05-06 40963/week @ 2024-05-13 43019/week @ 2024-05-20 42302/week @ 2024-05-27 44789/week @ 2024-06-03 43733/week @ 2024-06-10 46266/week @ 2024-06-17 44579/week @ 2024-06-24 36597/week @ 2024-07-01 36796/week @ 2024-07-08 33330/week @ 2024-07-15 35309/week @ 2024-07-22 35976/week @ 2024-07-29 34401/week @ 2024-08-05

每月下载量 140,211
29 包中使用 (5 直接)

MIT 许可证

29KB
704

QueryMap

crates.io Documentation Build Status

QueryMap 是 HashMap 的泛型包装,用于处理像URL查询字符串这样的不同转换。

QueryMap 可以将具有单个值元素的 HashMap 结构体规范化为具有值向量元素的结构的。

安装

cargo install query_map

示例

从 HashMap 创建 QueryMap

use std::collections::HashMap;
use query_map::QueryMap;

let mut data = HashMap::new();
data.insert("foo".into(), vec!["bar".into()]);

let map: QueryMap = QueryMap::from(data);
assert_eq!("bar", map.first("foo").unwrap());
assert_eq!(None, map.first("bar"));

从 Serde 值创建 QueryMap (需要 serde 功能)

use query_map::QueryMap;
#[derive(Deserialize)]
struct Test {
    data: QueryMap,
}

let json = serde_json::json!({
    "data": {
        "foo": "bar"
    }
});

let test: Test = serde_json::from_value(json).unwrap();
assert_eq!("bar", test.data.first("foo").unwrap());

从查询字符串创建 QueryMap (需要 url-query 功能)

use query_map::QueryMap;

let data = "foo=bar&baz=quux&foo=qux";
let map = data.parse::<QueryMap>().unwrap();
let got = map.all("foo").unwrap();
assert_eq!(vec!["bar", "qux"], got);

依赖项

~175KB