Other languages with Rust's eums?

192 points uuuuuuuaaaaaaa

The number one feature I miss in non-Rust languages is always the enums. Having different options of an enum contain different fields is amazing, especially when paired with match statements. Anything approaching this behavior in the other languages I know (Typescript/Python/Go), like if/switch statements, just don't have the same type guarantees and never feel as solid or succinct (I especially like how Rust's match requires every possible option to be handled).

What other languages have similar patterns to Rust enums and/or match?