Wie erstelle ich eine Rust HashMap, bei der der Wert einer von mehreren Typen sein kann?
Ich möchte ein JSON-Objekt erstellen, das mehrere Typen enthält. Hier ist die Struktur:
{
"key1": "value",
"key2": ["val", "val", "val"]
"key3": { "keyX": 12 }
}
Wie kann ich ein @ machHashMap
was akzeptiert all diese Typen?
Ich versuche das:
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();
Ich weiß, dass die Hash-Map nicht genügend Typinformationen enthält, bin mir aber nicht sicher, wie ich sie zum Laufen bringen kann. Ich habe versucht, einen expliziten Typ für @ festzulegeitem
das warHashMap<&str, Encodable>
aber dann ist es nur ein weiterer Fehler. Was ist der richtige Weg, um dies zu tun?