Earlier quoted context omitted.
Tangentially, I did a bit of Rust work recently. I was sadly unable to find a concise credible answer to a rather elementary best-practices question: How does ownership interact with nested datastructures? Is it possible to build a heap tree without Boxing every node explicitly?
This question is a bit subtle, it depends on exactly what you mean. You could make a tree using only borrow checked references and the compiler would make sure that parent nodes go out of scope at the same time or before the child nodes they point to, but I don't think that's what you're talking about. In general, if it's a datastructure where you have to use pointers, you'll have them Box'ed, but you would try to av…
One thing I would add that you need to be wary of destructors with large pointer data structures in Rust since it can easily stack overflow. When using Option> you need to be careful to call Option::take on the pointers in a loop to avoid stack overflow.