[][src]Module serde_with::rust::btreemap_as_tuple_list

De/Serialize a BTreeMap into a list of tuples

Some formats, like JSON, have limitations on the type of keys for maps. In case of JSON, keys are restricted to strings. Rust features more powerfull keys, for example tuple, which can not be serialized to JSON.

This helper serializes the BTreeMap into a list of tuples, which does not have the same type restrictions.

If you need to de/serialize a HashMap then use hashmap_as_tuple_list.

Examples

#[derive(Deserialize, Serialize)]
struct A {
    #[serde(with = "serde_with::rust::btreemap_as_tuple_list")]
    s: BTreeMap<(String, u32), u32>,
}

let v: A = serde_json::from_value(json!({
    "s": [
        [["Hello", 123], 0],
        [["World", 456], 1]
    ]
})).unwrap();

assert_eq!(2, v.s.len());
assert_eq!(1, v.s[&("World".to_string(), 456)]);

Functions

deserialize

Deserialize a BTreeMap from a list of tuples

serialize

Serialize the BTreeMap as a list of tuples