&gt;Code that takes a full structure when it only needs to operate on a part of the structure is badly designed.<p>No, it is not; this is done all the time with methods and it improves encapsulation - you may not want your clients to be able to decompose your data structures. Do you really mark every member of your data structures as pub??<p>Sorry but this is a poor ad-hoc defense of an actual annoyance in the borrow-checker.