Из тех языков, с которыми лично имел дело, сложность возрастает в ряду
Питон -> GoLang и Си -> Си++ ------------> Rust
Сложность кода на Rust обусловлена борьбой с его системой отслеживания владения и времени жизни. Причем порою случаются нежданчики, прилетает, что называется, на ровном месте :) Но многие трудности можно обойти тем или иным способом. Например, в Rust есть чудесные функции
std::mem::replace , std::mem::take и std::mem::swap, которые очень выручают в ситуациях работы со структурами и коллекциями.