this post was submitted on 04 Oct 2023
1 points (66.7% liked)

Flutter

620 readers
1 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
[–] anlumo@feddit.de 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.

[–] Rexios@lemm.ee 1 points 1 year ago (2 children)

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

[–] samus7070@programming.dev 1 points 1 year ago

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

[–] anlumo@feddit.de 1 points 1 year ago (1 children)

Freezed generates sealed classes, not enums.

[–] Rexios@lemm.ee 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

[–] anlumo@feddit.de 1 points 1 year ago (1 children)

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

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@programming.dev 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.