One of the many difference is that there is no inheritance, and implementations of traits can be added for types long after they are defined. Traits in rust are not like java interfaces.
It wasn't my example, but it's just disproving the notion that FP somehow means you need to write big if statements to dispatch your functions.
Traits are not functional-language specific except in that they are often used in FP to solve problems similar to those one might use inheritance to solve in OOP.
I mean, I don't see anything horribly functional-language-specific about your trait example.