Derive Macro serde_query::DeserializeQuery [−][src]
#[derive(DeserializeQuery)]
{
// Attributes available to this derive:
#[query]
}
Expand description
Derive macro for DeserializeQuery
trait.
Example
use serde_query::{DeserializeQuery, Query};
#[derive(DeserializeQuery)]
struct Data {
#[query(".commit.authors.[0]")]
first_author: String,
#[query(".hash")]
hash_value: u64,
}
let document = serde_json::to_string(&serde_json::json!({
"commit": {
"authors": ["Kou", "Kasumi", "Masaru"],
"date": "2020-09-10",
},
"hash": 0xabcd,
}))?;
// You can use `Query<T>` as a `Deserialize` type for any `Deserializer`
// and convert the result to the desired type using `From`/`Into`.
let data: Data = serde_json::from_str::<Query<Data>>(&document)?.into();
assert_eq!(data.first_author, "Kou");
assert_eq!(data.hash_value, 0xabcd);