¿Cómo creo un Rust HashMap donde el valor puede ser de varios tipos?
Quiero hacer un objeto JSON que incluya varios tipos. Aquí está la estructura:
{
"key1": "value",
"key2": ["val", "val", "val"]
"key3": { "keyX": 12 }
}
¿Cómo puedo hacer unHashMap
que acepta todos estos tipos?
Estoy intentando esto:
let item = HashMap::new();
item.insert("key1", someString); //type is &str
item.insert("key2", someVecOfStrings); //type is Vec<String>
item.insert("key3", someOtherHashMap); //Type is HashMap<&str, u32>
let response = json::encode(&item).unwrap();
Sé que el mapa hash no tiene suficiente información de tipo, pero no estoy seguro de cómo puedo hacerlo funcionar. He intentado establecer un tipo explícito enitem
que eraHashMap<&str, Encodable>
pero entonces es solo otro error. ¿Cuál es la forma correcta de hacer esto?