我如何在Rust中创建一个HashMap,该HashMap的深度可以达到映射值深度的4到5倍?

我如何在Rust中创建一个HashMap,该HashMap的深度可以达到映射值深度的4到5倍?,rust,hashmap,Rust,Hashmap,我需要创建一个HashMap,其中的值是HashMaps,并且可能包含也可能是HashMap的值,其深度可以达到4到5倍。比如, 使用std::collections::HashMap; fn main(){ let条目:HashMap=HashMap::new(); } T可以是一个HashMap,它包含其他HashMaps作为值,依此类推。键总是Strings,叶值可以是各种类型。如何实现这一点?“叶值可以是各种类型的”-这听起来像是枚举 use std::collections::Has

我需要创建一个
HashMap
,其中的值是
HashMap
s,并且可能包含也可能是HashMap的值,其深度可以达到4到5倍。比如,

使用std::collections::HashMap;
fn main(){
let条目:HashMap=HashMap::new();
}
T可以是一个
HashMap
,它包含其他
HashMap
s作为值,依此类推。键总是
String
s,叶值可以是各种类型。如何实现这一点?

“叶值可以是各种类型的”-这听起来像是
枚举

use std::collections::HashMap;

enum Value {
    Leaf(String), // or whatever types they can be
    Nested(HashMap<String, Value>),
}

fn main() {
    let entry: HashMap<String, Value> = HashMap::new();
}
使用std::collections::HashMap;
枚举值{
叶(字符串),//或它们可以是的任何类型
嵌套(哈希映射),
}
fn main(){
let条目:HashMap=HashMap::new();
}
“叶值可以有多种类型”-对我来说,这听起来像是一个
枚举

use std::collections::HashMap;

enum Value {
    Leaf(String), // or whatever types they can be
    Nested(HashMap<String, Value>),
}

fn main() {
    let entry: HashMap<String, Value> = HashMap::new();
}
使用std::collections::HashMap;
枚举值{
叶(字符串),//或它们可以是的任何类型
嵌套(哈希映射),
}
fn main(){
let条目:HashMap=HashMap::new();
}

是所有相同类型的叶值,键是
字符串
HashMap
?@AlexLarionov我编辑了这个问题以反映您的查询。是所有相同类型的叶值和键是
字符串
HashMap
?@AlexLarionov我编辑了这个问题以反映您的查询。但是它如何使叶值成为各种类型?它们是相同的(
String
),在本例中,
Leaf(String)
只是一个替代变量,因为OP没有指定它们可以是什么其他类型。不同的枚举变量将用于不同的叶类型。我只是认为这就像一个
json具有任意结构和叶类型但它如何生成各种类型的叶值?它们是相同的(
String
),在本例中,
Leaf(String)
只是一个替代变量,因为OP没有指定它们可以是什么其他类型。不同的枚举变量将用于不同的叶类型。我只是认为这就像一个
json具有任意结构和叶类型