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?

questionAnswers(2)

yourAnswerToTheQuestion