<i>&gt; I&#x27;m saying that if you look at the larger use case you can design your code in idiomatic Rust to avoid it.</i><p>As I said, may be you can, but it&#x27;s far from trivial and unless you know how to do it already, coming up with such approaches isn&#x27;t something that one who just learns the language would be focusing on. You yourself said above, that it&#x27;s hard. And unlike languages like C++ where OOP approaches are very well documented, Rust documentation lacks such kind of information at present.