Name Description Size
de.rs 40201
lib.rs [![github]](https://github.com/dtolnay/path-to-error)&ensp;[![crates-io]](https://crates.io/crates/serde_path_to_error)&ensp;[![docs-rs]](https://docs.rs/serde_path_to_error) [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs <br> Find out the path at which a deserialization error occurred. This crate provides a wrapper that works with any existing Serde `Deserializer` and exposes the chain of field names leading to the error. # Example ``` # use serde_derive::Deserialize; # use serde::Deserialize; use std::collections::BTreeMap as Map; #[derive(Deserialize)] struct Package { name: String, dependencies: Map<String, Dependency>, } #[derive(Deserialize)] struct Dependency { version: String, } fn main() { let j = r#"{ "name": "demo", "dependencies": { "serde": { "version": 1 } } }"#; // Some Deserializer. let jd = &mut serde_json::Deserializer::from_str(j); let result: Result<Package, _> = serde_path_to_error::deserialize(jd); match result { Ok(_) => panic!("expected a type error"), Err(err) => { let path = err.path().to_string(); assert_eq!(path, "dependencies.serde.version"); } } } ``` 5071
path.rs 4101
ser.rs 28066
wrap.rs 859