paralegal_spdg::utils

Module serde_map_via_vec

Source
Expand description

Serialize a HashMap by converting it to a Vec, lifting restrictions on the types of permissible keys.

The JSON serializer for HashMap needs the keys to serialize to a JSON string object, but sometimes that is not the case. Since the HashMap struct only requires its keys be Eq and Hash other non-string values may have been used as key. Unfortunately you can still use the Serialize trait on HashMap, even if the keys do not serialize to strings. Instead a runtime error will be thrown when a non-string key is encountered.

This module converts the HashMap into a Vec of tuples and (de)serializes that, which permits arbitrary types to be used for the keys.

You are meant to use both serialize and deserialize, because the Serialize and Deserialize instances of HashMap do not work together with these functions.

Functionsยง