Dart Union Class
Generates simple extension methods to simulate unions in Dart. No need for code generation, because I'm sure we all love that.
:muscle: Features
map
You can act differently on each possible value.
void main() {
final state = getUser();
state.map(
loadingState: (_) {
print('Loading..');
},
loadedState: (_) {
print("You're good to go!");
},
errorState: (_) {
print('Oops, something happened!');
},
);
}
But also return values accordingly.
Widget build(BuildContext context) {
final state = getUser();
return state.map<Widget>(
loadingState: (_) {
return CircularProgressIndicator();
},
loadedState: (loaded) {
return Text('Hello, ${loaded.userName}!');
},
errorState: (error) {
return Text('Something bad happened: $error');
},
);
}
:shipit: Inspiration
Totally original idea right there. Definitely not inspired by Dart Data Class and Freezed.