Как разобраться с владением памяти в Rust, если раньше сидел на C++
Ну я вот тоже перешёл с C++ на Rust и сразу поймал этот шок с ownership и borrow checker. В C++ привык просто new/delete или умные указатели - всё было понятно и более-менее под контролем. А в Rust это всё с lifetimes, заимствованиями - на бумаге вроде просто, но когда пишешь что-то нормальное, постоянно путаешься, почему компилятор ругается. Особенно угарно с левым «стринг не живёт достаточно долго» или тип «почему ссылку не могу передать, когда в C++ так проще было».
Читал книжки, смотрел видео, логика есть, но на практике всё равно сложно и Rust кажется чересчур строгим, это реально тормозит и кодить, и разбираться, что делают другие. Еще раздражает, что надо заранее продумывать структуру, чтобы не было ошибок с владением, просто написать и забыть тут не выйдет. Кто-то уже переборол это и спокойно пишет? Как зацепиться за идею «кому память принадлежит» без этих вечных приколов с компилятором? Или реально только по времени проходит?