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.

  • anlumo@feddit.de
    link
    fedilink
    arrow-up
    1
    ·
    9 months ago

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

    • samus7070@programming.devOP
      link
      fedilink
      arrow-up
      1
      ·
      9 months 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.

    • Rexios@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      9 months ago

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

        • Rexios@lemm.ee
          link
          fedilink
          arrow-up
          1
          ·
          9 months ago

          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
            link
            fedilink
            English
            arrow-up
            1
            ·
            9 months ago

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

            • Problematic Consumer@lemmy.worldM
              link
              fedilink
              arrow-up
              1
              ·
              9 months 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?