Ходят слухи, что если вы попросите новичков внедрить двусвязный список в Rust, они навсегда обойдут Rust стороной. Давайте разберемся в этом. Прежде всего, само собой разумеется, что в отличие от C++ все итераторы `std` в Rust являются однонаправленными. Хотя Rust не одинок в этой игре, например, Python идет по тому же пути, первопричины находятся на расстоянии многих миль друг от друга. Во всем виноваты правила использования ссылок. В любой момент времени у вас может быть либо одна изменяемая ссылка, либо любое количество неизменяемых ссылок. Справедливо, если у вас есть двусвязный список, у вас будет по две ссылки на каждый элемент. Следовательно, они никогда не могут быть изменяемыми. Какой смысл в такой конструкции, если вы не можете даже пополнить его, не говоря уже об обновлении его значений. По сути, именно поэтому на первый взгляд это безнадежное дело, и оно может разочаровать новичка. Тем не менее, еще не все потеряно. Как говорится, если вам это не нравится, вы не можете прос