https://github.com/leynier/dart-enum-flag
Package to create enums for flags using bitmask in Dart using a mixin and extensions.
https://github.com/leynier/dart-enum-flag
dart enum enum-flags flag
Last synced: over 1 year ago
JSON representation
Package to create enums for flags using bitmask in Dart using a mixin and extensions.
- Host: GitHub
- URL: https://github.com/leynier/dart-enum-flag
- Owner: leynier
- License: mit
- Created: 2022-07-10T05:41:15.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-03-03T00:27:10.000Z (over 3 years ago)
- Last Synced: 2025-03-15T23:17:58.195Z (over 1 year ago)
- Topics: dart, enum, enum-flags, flag
- Language: Dart
- Homepage: https://pub.dev/packages/enum_flag
- Size: 18.6 KB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# enum_flag
[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link]
[![License: MIT][license_badge]][license_link]
[](https://github.com/leynier/dart-enum-flag/actions/workflows/tests.yml)
[](https://codecov.io/gh/leynier/dart-enum-flag)
Package to create enums for flags using bitmask in Dart using a mixin and extensions.
## Usage
```dart
import 'package:enum_flag/enum_flag.dart';
enum EnumX with EnumFlag {
one,
two,
three,
four,
}
void main() {
print(EnumX.one.value); // 1
print(EnumX.two.value); // 2
print(EnumX.three.value); // 4
print(EnumX.four.value); // 8
print(EnumX.one.value | EnumX.two.value); // 3
print(EnumX.one.value | EnumX.three.value); // 5
print(1.hasFlag(EnumX.one)); // true
print(1.hasFlag(EnumX.two)); // false
print(2.hasFlag(EnumX.one)); // false
print(2.hasFlag(EnumX.two)); // true
print(3.hasFlag(EnumX.one)); // true
print(3.hasFlag(EnumX.two)); // true
print(1.getFlags(EnumX.values)); // [EnumX.one]
print(2.getFlags(EnumX.values)); // [EnumX.two]
print((1 | 2).getFlags(EnumX.values)); // [EnumX.one, EnumX.two]
print(3.getFlags(EnumX.values)); // [EnumX.one, EnumX.two]
print([EnumX.one, EnumX.two].flag); // 3
}
```
[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg
[license_link]: https://opensource.org/licenses/MIT
[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg
[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis