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 在 编码
每月下载量 140,211
在 29 个 包中使用 (5 直接)
29KB
704 行
QueryMap
QueryMap 是 HashMap
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