How to : returning values referencing local Rc?

In general, self-referential structs are an anti-pattern in rust because moving the struct in memory would cause the references to become invalid.

Some additional reading on the topic:

The short answer is that you can't create self-referential structs without significant restrictions and challenges. However, it turns out it's rarely truly necessary, so again, I'd ask why you need a pattern like this. What problem are you trying to solve?