MCPcopy Index your code
hub / github.com/dtolnay/path-to-error

github.com/dtolnay/path-to-error @0.1.20

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.20 ↗ · + Follow
174 symbols 316 edges 7 files 16 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Serde path to error

github crates.io docs.rs build status

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.

[dependencies]
serde = "1.0"
serde_path_to_error = "0.1"
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");
        }
    }
}

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Core symbols most depended-on inside this repo

trigger
called by 116
src/lib.rs
path
called by 4
src/lib.rs
singleton_map
called by 3
tests/serialize.rs
deserialize
called by 2
src/de.rs
iter
called by 2
src/path.rs
test
called by 2
tests/serialize.rs
into_inner
called by 1
src/lib.rs
trigger_impl
called by 1
src/lib.rs

Shape

Method 133
Class 21
Function 17
Enum 3

Languages

Rust100%

Modules by API surface

src/de.rs77 symbols
src/ser.rs48 symbols
tests/deserialize.rs15 symbols
src/path.rs14 symbols
src/lib.rs11 symbols
tests/serialize.rs6 symbols
src/wrap.rs3 symbols

For agents

$ claude mcp add path-to-error \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact