I wouldn't consider Rust a manual memory environment. There are ways to do that at edges if needed, but it is otherwise very much automatic which is kind of the whole point of its design.
https://en.wikipedia.org/wiki/Garbage_collection_(computer_s...
https://users.rust-lang.org/t/reference-counting-garbage-col...
Swift has refcounting built into the language and assumed everywhere. You could always use raw refs in Swift, but that's not the norm.
E.g. in Swift the reference counting is automatic a d implicit
In C++ it is manual and explicit