Skip to content

Instantly share code, notes, and snippets.

@anoop4real
Created November 7, 2020 12:48
Show Gist options
  • Save anoop4real/6a61e1298853f55451465c9974983e07 to your computer and use it in GitHub Desktop.
Save anoop4real/6a61e1298853f55451465c9974983e07 to your computer and use it in GitHub Desktop.
Dart: Featureflags
enum Environment {
dev,
qa,
prod,
}
enum FeatureType {
feature1,
feature2,
}
extension FeatureTypeExtension on FeatureType {
bool isFeatureEnabledFor(Environment environment) {
switch (environment) {
case Environment.dev:
switch (this) {
case FeatureType.feature1:
return true;
case FeatureType.feature2:
return true;
default:
return false;
}
break;
case Environment.qa:
switch (this) {
case FeatureType.feature1:
return true;
case FeatureType.feature2:
return false;
default:
return false;
}
break;
case Environment.prod:
switch (this) {
case FeatureType.feature1:
return false;
case FeatureType.feature2:
return true;
default:
return false;
}
break;
default:
return false;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment