#vec #serde #hash-map

no-std serde-tuple-vec-map

Deserialize a serialized map to a Vec<(K, V)> in serde

6 releases (2 stable)

Uses old Rust 2015

1.0.1 Apr 4, 2022
1.0.0 Feb 8, 2020
0.2.2 Feb 8, 2020
0.2.1 Jan 5, 2018
0.1.0 Mar 28, 2017

#170 in Encoding

Download history 3298/week @ 2023-12-17 2207/week @ 2023-12-24 3552/week @ 2023-12-31 4730/week @ 2024-01-07 5096/week @ 2024-01-14 5801/week @ 2024-01-21 5392/week @ 2024-01-28 6025/week @ 2024-02-04 5033/week @ 2024-02-11 5820/week @ 2024-02-18 5374/week @ 2024-02-25 5167/week @ 2024-03-03 5132/week @ 2024-03-10 5779/week @ 2024-03-17 5145/week @ 2024-03-24 5892/week @ 2024-03-31

22,391 downloads per month
Used in 20 crates (14 directly)

MIT license

8KB
69 lines

serde-tuple-vec-map

Build Status

Deserialize maps or JSON objects in serde to a vec of tuples rather than a HashMap for when you're only ever going to iterate over the result.

Usage:

// replace this:
#[derive(Serialize, Deserialize)]
struct MyStuff {
    data: HashMap<KeyType, ValueType>,
}

// with this:
#[derive(Serialize, Deserialize)]
struct MyStuff {
    #[serde(with = "tuple_vec_map")]
    data: Vec<(KeyType, ValueType)>,
}

The serialized format remains exactly the same, the only difference is in how the data is decoded in Rust.

serde-tuple-vec-map supports no_std builds by using Vec defined in the alloc crate. If you're on rust 1.36.0 or newer, you can enable this with default-features=false:

[dependencies.serde-tuple-vec-map]
version = "1"
default-features = false

Note: This crate is complete, and passively maintained. It depends solely on serde and features present in stable rust. The minimum supported rust version 1.13.0 when using default features, and 1.36.0 for default-features = false.

Full usage example in tests/integration.rs, documentation at https://docs.rs/serde-tuple-vec-map.

Dependencies

~110–355KB