[Dart] Get all enum values in a list (#7166)

* Provide getter `values` for all enum values

* Add values getter also to inline enum

* Generate samples

Co-authored-by: SimonIT <simonit.orig@gmail.com>
This commit is contained in:
sbu 2020-08-23 15:37:52 +02:00 committed by GitHub
parent f371f7ff07
commit fff5bfe8cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 2 deletions

View File

@ -12,7 +12,15 @@ class {{classname}} {
static const {{classname}} {{{name}}} = {{classname}}._internal({{value}});
{{/enumVars}}
{{/allowableValues}}
static List<{{classname}}> get values => const [
{{#allowableValues}}
{{#enumVars}}
{{{name}}},
{{/enumVars}}
{{/allowableValues}}
];
{{dataType}} toJson () {
return value;
}
@ -25,7 +33,7 @@ class {{classname}} {
static {{classname}} fromJson({{dataType}} value) {
return {{classname}}TypeTransformer().decode(value);
}
static List<{{classname}}> listFromJson(List<dynamic> json) {
return json == null
? List<{{classname}}>()

View File

@ -13,6 +13,14 @@ class {{classname}}{{enumName}} {
{{/enumVars}}
{{/allowableValues}}
static List<{{classname}}{{enumName}}> get values => const [
{{#allowableValues}}
{{#enumVars}}
{{{name}}},
{{/enumVars}}
{{/allowableValues}}
];
{{{dataType}}} toJson () {
return value;
}

View File

@ -93,6 +93,12 @@ class OrderStatusEnum {
/// Order Status
static const OrderStatusEnum delivered_ = OrderStatusEnum._internal("delivered");
static List<OrderStatusEnum> get values => const [
placed_,
approved_,
delivered_,
];
String toJson () {
return value;
}

View File

@ -97,6 +97,12 @@ class PetStatusEnum {
/// pet status in the store
static const PetStatusEnum sold_ = PetStatusEnum._internal("sold");
static List<PetStatusEnum> get values => const [
available_,
pending_,
sold_,
];
String toJson () {
return value;
}