Indirect ownership, shallow borrow and self-referential data structures in Rust | Hacker News Reader