dataenum icon indicating copy to clipboard operation
dataenum copied to clipboard

add safeAsX(): Optional<X> method

Open tho-graf opened this issue 2 years ago • 1 comments

Hi there, coming from languages with sum types, is such a punishment to use java. We actually wrote handmade ADTs like your library is generating. I really like how less you have to type and what is generated for you. :heart:

This library already generates the

isX(): Boolean and asX(): X

we added in our hand wrote code a asSafeX(): Optional<X> method. This is more typesafe and could actually replace both methods

isX() is asSafeX().isPresent() and asX() is asSafeX().get()

but you could also do typesafe stuff like asSafeX().map(x=>2*x).orElse(42)

Can you image to add this method?

Cheers Thomas

tho-graf avatar Nov 23 '23 20:11 tho-graf

Hi,

Glad to hear you find it useful! We're not using dataenum a lot internally, since it was mainly written for a usecase in Android development, and we've moved to Kotlin which has better support for ADTs than Java. So we're not going to prioritise adding features ourselves - but if you are up for it, feel free to create a PR adding asSafeX(), I can help getting it merged and released.

pettermahlen avatar Nov 24 '23 06:11 pettermahlen