Skip to content

Arcascope/dart-enums

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dart-enums

Build Status

Dart does not have native support for Enums and this library tries to fill this void. Largely inspired by Java's enum features, this library provides an extendable Enum class that provides all enum instances with an ordinal and a name. Also a valueOf constructor and values() iterable are provided.

Example use:

class MyEnum extends Enum {
  // the enum values
  static const MyEnum nr1 = const MyEnum._(5);
  static const MyEnum nr2 = const MyEnum._(10);
  static const MyEnum nr3 = const MyEnum._(15);

  // these two lines are required to add support for values and valueOf
  static MyEnum valueOf(String name) => Enum.valueOf(MyEnum, name);
  static List<MyEnum> get values => Enum.values(MyEnum);

  // your own implementation
  final int myValue;
  const MyEnum._(this.myValue);
}

void main() {
  print(MyEnum.nr1.index);            // prints 0
  print(MyEnum.nr1.toString());       // prints nr1
  print(MyEnum.valueOf("nr1").index); // prints 0
  print(MyEnum.values[1].toString())  // prints nr2
  print(MyEnum.values.last.index)     // prints 2
  print(MyEnum.values.last.myValue);  // prints 15
}  

About

A library to create Enums in Dart.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 89.2%
  • Shell 10.8%