be careful and do your research.
anytime you need to implement anything that shares references (just about any data structure worth its weight in implementation time) you need to use Rc<> and friends.
i am not talking about https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html. fine, this escape hatch is needed.
i am referring to https://doc.rust-lang.org/book/ch15-06-reference-cycles.html.