Como crio um Rash HashMap em que o valor pode ser de vários tipos?
Eu quero criar um objeto JSON que inclua vários tipos. Aqui está a estrutura:
{
"key1": "value",
"key2": ["val", "val", "val"]
"key3": { "keyX": 12 }
}
Como posso fazer umaHashMap
que aceita todos esses tipos?
Estou tentando isso:
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();
Sei que o mapa de hash não possui informações de tipo suficientes, mas não sei como posso fazê-lo funcionar. Eu tentei definir um tipo explícito emitem
que foiHashMap<&str, Encodable>
mas então é apenas outro erro. Qual é a maneira correta de fazer isso?