A minor point on a great article, but &quot;On the other hand, Java’s enum values are really singleton classes under the hood – so one can define an abstract method in the enum to implement differently in each value, something that would require a match expression (or hash-table, whose construction at compile time some enterprising Rustaceans have built a crate for) in Rust&quot; isn&#x27;t quite true -- you can implement methods on enums in Rust, too: <a href="http:&#x2F;&#x2F;is.gd&#x2F;M3VJJR" rel="nofollow">http:&#x2F;&#x2F;is.gd&#x2F;M3VJJR</a>