Как написать рекурсивный универсальный тип в Rust? - PullRequest
0 голосов
/ 29 декабря 2018

Я хочу определить HashMap с типом ключа String, а тип значения - сам.

Я пытался написать что-то вроде:

HashMap<String, HashMap<String, ...>>

Я обнаружил, что это требует рекурсии, и я не знаю, как написать рекурсию в типе.

После прочтения Рекурсивные универсальные типы я попробовал:

type HashToHash = HashMap<String, HashToHash>

Однако я получил ошибку:

error[E0391]: cycle detected when processing `HashToHash`
 --> src/lib.rs:3:35
  |
3 | type HashToHash = HashMap<String, HashToHash>;
  |                                   ^^^^^^^^^^
  |
  = note: ...which again requires processing `HashToHash`, completing the cycle

Есть ли способ определитьтакого типа в Rust?

...