Я ищу язык программирования Rust и пытаюсь преобразовать мышление C++ в Rust. Общие структуры данных, такие как списки и деревья, и ранее были реализованы с указателями на C++, и я не уверен, как реализовать точные эквиваленты в Rust. Структуры данных, которые меня интересуют, - это интрузивные алгоритмы, аналогичные тем, которые встречаются в интрузивных библиотеках Boost, и они полезны во встроенном/системном программировании.Взаимозаменяемые алгоритмы в Rust
Пример связанного списка в Rust (Dlist) довольно прямолинейный, но он использует тип контейнера, где фактический тип находится внутри контейнера. Навязчивый алгоритм, который я ищу, немного наоборот: у вас есть основной тип, где узел списка вставлен или унаследован.
Кроме того, известный связанный список в Linux также является еще одним примером, когда данные списка находятся в элементах структур. Это похоже на вариант участника Boost для интрузивных алгоритмов. Это позволяет многократно использовать ваш тип в нескольких списках/деревьях. Как это будет работать с Rust?
Так что я не уверен, как преобразовать эти шаблоны дизайна в Rust, к которым я привык в C/C++. Любой, кто имел успех, понимал это?
У меня нет большого опыта работы с этими типами структур данных, но можете ли вы объяснить некоторые преимущества, которые вы надеетесь получить, используя их? Если стандартные структуры Rust не подходят для ваших случаев использования, возможно, что-то еще будет. – Shepmaster
Возможно, вы захотите посмотреть https://github.com/pcwalton/multilist, который реализует интрузивные структуры данных. – awelkie