The enumerated package adds additional functionality around dart enums.
One main aspect of this package is the EnumSet
.
Features
- EnumSet - A
Set
implementation especially for enums. - EnumSet provides additional functionalities and more efficient implementations for specific set operations.
Getting started
Add the package to your pubspec.yaml:
enumerated: ^0.1.1
In your dart file, import the library:
import 'package:enumerated/enumerated.dart';
Usage
Creating an EnumSet:
In order to create an EnumSet
you can choose from one of the following factory methods:
EnumSet.of(List, Iterable)
: Creates anEnumSet
with the given values.EnumSet.noneOf(List)
: Creates an emptyEnumSet
.EnumSet.allOf(List)
: Creates anEnumSet
with all values of the given enum.EnumSet.complementOf(EnumSet)
: Creates anEnumSet
with all values which are not contained in the otherEnumSet
enum Numbers {one, two, three;}
var set1 = EnumSet.of(Numbers.values, [Numbers.one]);
var set2 = EnumSet.noneOf(Numbers.values);
var set3 = EnumSet.allOf(Numbers.values);
var set4 = EnumSet.complementOf(set1);
Note that for every factory method other than complementOf
you need to provide the full list of possible enum values as first parameter.
Adding and removing data:
set1.add(Numbers.two);
set1.addAll(set3);
set1.remove(Numbers.one);
set1.removeAll(set3);
Other useful functionalities:
- fill(): Will add all enum values to the set.
set1.fill();
- complement(): Will return a new
EnumSet
with all values which are not contained in the current set.
set1.complement();
- copy(): Creates a exact copy of the current set.
set1.copy();
Additional information
If you have ideas for this package or want to help develop it yourself, don't hesitate to open an issue or create a pull request. I am grateful for any help!
Libraries
- enumerated
- The enumerated library adds useful functionality to dart enums