mirror of
https://github.com/Ellpeck/DynamicEnums.git
synced 2024-11-24 01:18:35 +01:00
use a comma as the dynamic enum delimiter to be in line with regular enums
This commit is contained in:
parent
1fe7725ca9
commit
23e94fa6f5
4 changed files with 9 additions and 8 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -3,4 +3,5 @@ bin
|
||||||
obj
|
obj
|
||||||
packages
|
packages
|
||||||
*.nupkg
|
*.nupkg
|
||||||
TestResults
|
TestResults
|
||||||
|
*.DotSettings.user
|
||||||
|
|
|
@ -110,7 +110,7 @@ namespace DynamicEnums {
|
||||||
var otherValue = DynamicEnum.GetValue(other);
|
var otherValue = DynamicEnum.GetValue(other);
|
||||||
if (otherValue != 0) {
|
if (otherValue != 0) {
|
||||||
if (included.Length > 0)
|
if (included.Length > 0)
|
||||||
included.Append(" | ");
|
included.Append(", ");
|
||||||
included.Append(other);
|
included.Append(other);
|
||||||
remain &= ~otherValue;
|
remain &= ~otherValue;
|
||||||
}
|
}
|
||||||
|
@ -426,7 +426,7 @@ namespace DynamicEnums {
|
||||||
var cache = DynamicEnum.GetStorage(type).ParseCache;
|
var cache = DynamicEnum.GetStorage(type).ParseCache;
|
||||||
if (!cache.TryGetValue(strg, out var cached)) {
|
if (!cache.TryGetValue(strg, out var cached)) {
|
||||||
BigInteger? accum = null;
|
BigInteger? accum = null;
|
||||||
foreach (var val in strg.Split('|')) {
|
foreach (var val in strg.Split(',')) {
|
||||||
foreach (var defined in DynamicEnum.GetValues(type)) {
|
foreach (var defined in DynamicEnum.GetValues(type)) {
|
||||||
if (defined.name == val.Trim()) {
|
if (defined.name == val.Trim()) {
|
||||||
accum = (accum ?? 0) | DynamicEnum.GetValue(defined);
|
accum = (accum ?? 0) | DynamicEnum.GetValue(defined);
|
||||||
|
|
|
@ -48,11 +48,11 @@ bool hasAll = allFlags1.HasAllFlags(MyEnum.FlagOne | MyEnum.ValueOne); // false
|
||||||
|
|
||||||
// displaying a dynamic enum value or flag
|
// displaying a dynamic enum value or flag
|
||||||
Console.WriteLine(MyEnum.FlagOne); // "FlagOne"
|
Console.WriteLine(MyEnum.FlagOne); // "FlagOne"
|
||||||
Console.WriteLine(allFlags1); // "FlagOne | FlagTwo | FlagThree"
|
Console.WriteLine(allFlags1); // "FlagOne, FlagTwo, FlagThree"
|
||||||
|
|
||||||
// parsing a dynamic enum value
|
// parsing a dynamic enum value
|
||||||
MyEnum parsed1 = DynamicEnum.Parse<MyEnum>("FlagOne");
|
MyEnum parsed1 = DynamicEnum.Parse<MyEnum>("FlagOne");
|
||||||
MyEnum parsed2 = DynamicEnum.Parse<MyEnum>("FlagOne | FlagThree");
|
MyEnum parsed2 = DynamicEnum.Parse<MyEnum>("FlagOne, FlagThree");
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also check out [the tests](https://github.com/Ellpeck/DynamicEnums/tree/main/Tests) for some more complex examples.
|
You can also check out [the tests](https://github.com/Ellpeck/DynamicEnums/tree/main/Tests) for some more complex examples.
|
||||||
|
|
|
@ -74,13 +74,13 @@ public class EnumTests {
|
||||||
Assert.AreEqual(flags[24].HasAnyFlags(DynamicEnum.GetEnumValue<TestDynamicEnum>(0)), false);
|
Assert.AreEqual(flags[24].HasAnyFlags(DynamicEnum.GetEnumValue<TestDynamicEnum>(0)), false);
|
||||||
|
|
||||||
Assert.AreEqual(DynamicEnum.Parse<TestDynamicEnum>("Flag24"), flags[24]);
|
Assert.AreEqual(DynamicEnum.Parse<TestDynamicEnum>("Flag24"), flags[24]);
|
||||||
Assert.AreEqual(DynamicEnum.Parse<TestDynamicEnum>("Flag24 | Flag43"), DynamicEnum.Or(flags[24], flags[43]));
|
Assert.AreEqual(DynamicEnum.Parse<TestDynamicEnum>("Flag24, Flag43"), DynamicEnum.Or(flags[24], flags[43]));
|
||||||
|
|
||||||
Assert.AreEqual(flags[24].ToString(), "Flag24");
|
Assert.AreEqual(flags[24].ToString(), "Flag24");
|
||||||
Assert.AreEqual(zero.ToString(), "Zero");
|
Assert.AreEqual(zero.ToString(), "Zero");
|
||||||
Assert.AreEqual(DynamicEnum.GetEnumValue<TestDynamicEnum>(0).ToString(), "Zero");
|
Assert.AreEqual(DynamicEnum.GetEnumValue<TestDynamicEnum>(0).ToString(), "Zero");
|
||||||
Assert.AreEqual(DynamicEnum.Or(flags[24], flags[43]).ToString(), "Flag24 | Flag43");
|
Assert.AreEqual(DynamicEnum.Or(flags[24], flags[43]).ToString(), "Flag24, Flag43");
|
||||||
Assert.AreEqual(DynamicEnum.Or(flags[24], DynamicEnum.GetEnumValue<TestDynamicEnum>(new BigInteger(1) << 99)).ToString(), "Flag24 | Flag99");
|
Assert.AreEqual(DynamicEnum.Or(flags[24], DynamicEnum.GetEnumValue<TestDynamicEnum>(new BigInteger(1) << 99)).ToString(), "Flag24, Flag99");
|
||||||
Assert.AreEqual(DynamicEnum.Or(flags[24], DynamicEnum.GetEnumValue<TestDynamicEnum>(new BigInteger(1) << 101)).ToString(), (DynamicEnum.GetValue(flags[24]) | new BigInteger(1) << 101).ToString());
|
Assert.AreEqual(DynamicEnum.Or(flags[24], DynamicEnum.GetEnumValue<TestDynamicEnum>(new BigInteger(1) << 101)).ToString(), (DynamicEnum.GetValue(flags[24]) | new BigInteger(1) << 101).ToString());
|
||||||
|
|
||||||
Assert.True(DynamicEnum.IsDefined(flags[27]));
|
Assert.True(DynamicEnum.IsDefined(flags[27]));
|
||||||
|
|
Loading…
Reference in a new issue