Generics 如何在Rust中编写递归泛型类型?

Generics 如何在Rust中编写递归泛型类型?,generics,recursion,types,rust,Generics,Recursion,Types,Rust,我想定义一个键类型为String的HashMap,值类型是它自己 我试着写一些东西,比如: HashMap<String, HashMap<String, ...>> HashMap 我发现这需要递归,我不知道如何在类型中编写递归 读完后,我试着: type HashToHash = HashMap<String, HashToHash> 输入HashToHash=HashMap 但是我得到了一个错误: 错误[E0391]:处理`HashToHash'

我想定义一个键类型为
String
HashMap
,值类型是它自己

我试着写一些东西,比如:

HashMap<String, HashMap<String, ...>>
HashMap
我发现这需要递归,我不知道如何在类型中编写递归

读完后,我试着:

type HashToHash = HashMap<String, HashToHash>
输入HashToHash=HashMap
但是我得到了一个错误:

错误[E0391]:处理`HashToHash'时检测到循环`
-->src/lib.rs:3:35
|
3 |类型HashToHash=HashMap;
|                                   ^^^^^^^^^^
|
=注意:…这同样需要处理'HashToHash',完成循环

有没有办法在Rust中定义这种类型?

试试
struct HashToHash(HashMap)。副本是错误的<代码>哈希表
的作用类似于一个框,因此您可以拥有一个递归结构。@trentcl当然,没有理由不起作用。
HashMap
的大小在编译时是已知的,它独立于键和值类型,因此在标记为重复的问题中提到的无限大小类型的问题在这里不会出现。由于叶节点中不能有任何值,因此仍然存在一个问题,即这种类型有多有用,但我不能排除这种数据结构存在用例。@trentcl Fair。它是……)