2个不稳定版本
0.1.0 | 2021年1月11日 |
---|---|
0.0.1 | 2021年1月8日 |
#1722 in 编码
7KB
161 行
serde-key-value-vec-map
将serde中的映射或JSON对象反序列化为实现了FromKeyValue
特质的struct。
示例
use serde_key_value_vec_map::*;
#[derive(Debug)]
struct SingleMeasurement {
name: String,
value: u32,
}
impl KeyValueLike for SingleMeasurement {
type Key = String;
type Value = u32;
fn from_key_value(key: Self::Key, value: Self::Value) -> Self {
Self { name: key, value }
}
fn key(&self) -> &Self::Key { &self.name }
fn value(&self) -> &Self::Value { &self.value }
}
let json = r#"
{
"temperature": 40,
"pressure": 123
}
"#;
#[derive(Deserialize)]
struct Container {
#[serde(flatten)]
#[serde(with = "serde_key_value_vec_map")]
measurements: Vec<SingleMeasurement>,
}
let container: Container = serde_json::from_str(json).unwrap();
println!("{:?}", container.measurements);
依赖项
~110–350KB