Here are a couple of options:
https://crates.io/crates/variantly
https://crates.io/crates/enum-methods