This *may* miss the point of Union-Find, but I think Union-Find is a very different proposition in Rust than it is in other languages.  FWIW, I was able to get a solution that works the 'normal' way using RefCells (without Rc) but that seemed boring.