format_serde_error 0.3.0

Serde error messages for humans.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use format_serde_error::SerdeError;

#[derive(Debug, serde::Serialize, serde::Deserialize)]
struct Config {
    values: Vec<String>,
}

fn main() -> Result<(), anyhow::Error> {
    let config_str = r#"{"values":["asd","asd2",{"invalid":"dont"},"asd3","asd4"]}"#;

    let config = serde_json::from_str::<Config>(config_str)
        .map_err(|err| SerdeError::new(config_str.to_string(), err))?;

    dbg!(config);

    Ok(())
}