this post was submitted on 04 Oct 2023
2 points (75.0% liked)

Flutter

629 readers
9 users here now

Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC

founded 1 year ago
MODERATORS
 

Here's a nice simple article explaining enhanced enums that have been around for a while but may be something overlooked. Between these and sealed classes I think Dart has an excellent story for pattern matching.

top 8 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 1 year ago (2 children)

I've yet to find a single use case for enhanced enums. It also doesn’t help that freezed doesn’t support them.

[–] [email protected] 1 points 1 year ago (2 children)

How exactly does freezed not support them? All data on an enhanced enum is static.

[–] samus7070 1 points 1 year ago

Maybe the code generator? I have no idea. It seems like there shouldn’t be an issue.

[–] [email protected] 1 points 1 year ago (1 children)

Freezed generates sealed classes, not enums.

[–] [email protected] 1 points 1 year ago (1 children)

I’m not sure enhanced enums do what you think they do if you expect freezed to generate anything for them besides what json_serializable generates for regular enums

[–] [email protected] 1 points 1 year ago (1 children)

The whole point of the discussion is that enhanced enums don't do anything in practice.

[–] [email protected] 1 points 1 year ago

Instead of writing verbose extensions and functions all over the place you can use enhanced enums. I mean what else are they supposed to do?

[–] samus7070 1 points 1 year ago

Prior to sealed classes, I wished they were more like swift enums that could carry dynamic data and have different associated types per case. Now if I want that, I can do that with a sealed class. It’s still nice to have smarter enums if I need a little extra smarts and want to keep the logic close to the enum.