So I am still learning myself and here are my thoughts:
I think you are right with regular reference types it's not really possible. To do what you want you will have to mutate a structure while keeping the reference to it somewhere else (in your case another structure) and that's a big no no in Rust.
Rust was specifically designed to prevent this type of behavior (yey memory safety, yey no data races)
Rust offers raw pointers, which you can use to do stuff like that, or you can play with Rc, Arc smart pointers.
Hi! I am browsing quite some Rust Q&A recently, because I am trying to learn this language. Most of the time I see answers like "that will not work", but do not see an advice like "here is how we do that in Rust". Do you know who are the people to go to for those advices? I understand that it is good to keep the community small while having so many moving parts in the language, but as far as I can tell, most of the people coming from an OOP background do not find the set of patterns that are to be used in this language.
For example the composite pattern is quite popular in OOP design. How to implement something like that in Rust?
Actually, the composite pattern is somewhat different. For example widgets on the user interface either contain other widgets, or they do not contain anything. And you want to treat both the same way. I got inspired by Ricardo's article and I will post soon an implementation for the composite pattern.