I like to set enum index start from 1 ( as it is default by zero). Expected
enum UserRoles{
admin = 1,
user,
vendor
}
Is there anything similar to this?
There are two ways to do this:
enum UserRoles {
_,
admin,
user,
vendor
}
print(UserRoles.values.indexOf(UserRoles.admin)); // 1
print(UserRoles.values.indexOf(UserRoles.user)); // 2
print(UserRoles.values.indexOf(UserRoles.vendor)); // 3
Con: someone can pass a _
user role, which can be invalid.
class UserRoles {
static UserRoles admin = UserRoles._();
static UserRoles user = UserRoles._();
static UserRoles vendor = UserRoles._();
static List<UserRoles> values = [admin, user, vendor];
UserRoles._();
static int indexOf(UserRoles role) {
return values.indexOf(role) + 1;
}
}
print(UserRoles.indexOf(UserRoles.admin)); // 1
print(UserRoles.indexOf(UserRoles.user)); // 2
print(UserRoles.indexOf(UserRoles.vendor)); // 3