#serde #map #single #key #dictionary

serde-single-key-map

Unwrap a single key map with serde

1 unstable release

0.1.0 Dec 13, 2019

#1290 in Encoding

Download history 14/week @ 2023-10-29 13/week @ 2023-11-05 9/week @ 2023-11-12 12/week @ 2023-11-19 25/week @ 2023-11-26 7/week @ 2023-12-03 17/week @ 2023-12-10 15/week @ 2023-12-17 13/week @ 2023-12-24 11/week @ 2023-12-31 20/week @ 2024-01-07 20/week @ 2024-01-14 26/week @ 2024-01-21 13/week @ 2024-01-28 23/week @ 2024-02-04 35/week @ 2024-02-11

98 downloads per month
Used in shaco

MIT license

7KB
92 lines

serde-single-key-map

Unwrap a single key map with serde.

Installation

Add it to your Cargo.toml:

[dependencies]
serde-single-key-map = "0.1"

Usage

#[derive(Debug, Deserialize)]
struct Project {
    name: String,
    #[serde(deserialize_with = "serde_single_key_map::deserialize")]
    items: Vec<Item>,
}

#[derive(Debug, Deserialize)]
struct Item {
    name: String,
    source: String,
}

fn main() {
    let s = r#"{
        "name": "test",
        "items": {
            "item": [
            {
                "name": "name",
                "source": "name.rs"
            }
            ]
        }
        }"#;
    let project: Project = serde_json::from_str(s).expect("deserialize failed");
    assert_eq!(project.name, "test");
    assert_eq!(project.items.len(), 1);
    let item = &project.items[0];
    assert_eq!(item.name, "name");
    assert_eq!(item.source, "name.rs");
}

License

This work is released under the MIT license. A copy of the license is provided in the LICENSE file.

Dependencies

~110–350KB