public void EnumIsConvertedCorrectly() { var sample = new WithEnum { Choice = Choices.One }; var serialized = Json.Serialize(sample); var deserialized = Json.Deserialize <WithEnum>(serialized); Assert.AreEqual(sample.Choice, deserialized.Choice); }
private void ForEachEnumValue(WithEnum withValue, object p) { Type pType = p.GetType(); if (!CycTypeInfo.IsFlagType(pType)) { PlTerm fort = (PlTerm)ToFort(p); withValue(fort); return; } Array pTypeValues = System.Enum.GetValues(pType); Array.Reverse(pTypeValues); if (p is byte) { byte b = (byte)p; if (b == 0) { withValue((PlTerm)ToFort(p)); return; } foreach (object v in pTypeValues) { byte bv = (byte)v; if (bv >= b) { withValue((PlTerm)ToFort(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is sbyte) { sbyte b = (sbyte)p; if (b == 0) { withValue((PlTerm)ToFort(p)); return; } foreach (object v in pTypeValues) { sbyte bv = (sbyte)v; if (bv >= b) { withValue((PlTerm)ToFort(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is UInt16) { ushort b = (UInt16)p; if (b == 0) { withValue((PlTerm)ToFort(p)); return; } foreach (object v in pTypeValues) { ushort bv = (ushort)v; if (bv >= b) { withValue((PlTerm)ToFort(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is Int16) { short b = (Int16)p; if (b == 0) { withValue((PlTerm)ToFort(p)); return; } foreach (object v in pTypeValues) { short bv = (short)v; if (bv >= b) { withValue((PlTerm)ToFort(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is UInt32) { uint b = (UInt32)p; if (b == 0) { withValue((PlTerm)ToFort(p)); return; } foreach (object v in pTypeValues) { uint bv = (uint)v; if (bv >= b) { withValue((PlTerm)ToFort(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is Int32) { int b = (Int32)p; if (b == 0) { withValue((PlTerm)ToFort(p)); return; } foreach (object v in pTypeValues) { int bv = (int)v; if (bv >= b) { withValue((PlTerm)ToFort(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is UInt64) { ulong b = (UInt64)p; if (b == 0) { withValue((PlTerm)ToFort(p)); return; } foreach (object v in pTypeValues) { ulong bv = (ulong)v; if (bv >= b) { withValue((PlTerm)ToFort(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is Int64) { long b = (Int64)p; if (b == 0) { withValue((PlTerm)ToFort(p)); return; } foreach (object v in pTypeValues) { long bv = (long)v; if (bv >= b) { withValue((PlTerm)ToFort(v)); b -= bv; } if (b == 0) { return; } } return; } string s = p.ToString(); bool unfolded; foreach (var unfold in Unfold(p, out unfolded)) { withValue((PlTerm)ToFort(unfold)); //return; } if (unfolded) { return; } Trace(); if (p is IConvertible) { withValue((PlTerm)ToFort(p)); return; } if (p is Enum) { withValue((PlTerm)ToFort(p)); return; } withValue((PlTerm)ToFort(p)); }
public string Index(WithEnum? value = null) { return OnIndex(value); }
private void ForEachEnumValue(WithEnum withValue, object p) { Type pType = p.GetType(); Array pTypeValues = System.Enum.GetValues(pType); if (p is byte) { byte b = (byte)p; if (b == 0) { withValue((Enum)(p)); } foreach (object v in pTypeValues) { byte bv = (byte)v; if (bv >= b) { withValue((Enum)(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is sbyte) { sbyte b = (sbyte)p; if (b == 0) { withValue((Enum)(p)); } foreach (object v in pTypeValues) { sbyte bv = (sbyte)v; if (bv >= b) { withValue((Enum)(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is UInt16) { ushort b = (UInt16)p; if (b == 0) { withValue((Enum)(p)); } foreach (object v in pTypeValues) { ushort bv = (ushort)v; if (bv >= b) { withValue((Enum)(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is Int16) { short b = (Int16)p; if (b == 0) { withValue((Enum)(p)); } foreach (object v in pTypeValues) { short bv = (short)v; if (bv >= b) { withValue((Enum)(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is UInt32) { uint b = (UInt32)p; if (b == 0) { withValue((Enum)(p)); } foreach (object v in pTypeValues) { uint bv = (uint)v; if (bv >= b) { withValue((Enum)(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is Int32) { int b = (Int32)p; if (b == 0) { withValue((Enum)(p)); } foreach (object v in pTypeValues) { int bv = (int)v; if (bv >= b) { withValue((Enum)(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is UInt64) { ulong b = (UInt64)p; if (b == 0) { withValue((Enum)(p)); } foreach (object v in pTypeValues) { ulong bv = (ulong)v; if (bv >= b) { withValue((Enum)(v)); b -= bv; } if (b == 0) { return; } } return; } if (p is Int64) { long b = (Int64)p; if (b == 0) { withValue((Enum)(p)); } foreach (object v in pTypeValues) { long bv = (long)v; if (bv >= b) { withValue((Enum)(v)); b -= bv; } if (b == 0) { return; } } return; } string s = p.ToString(); foreach (var unfold in Unfold(p)) { withValue((Enum)(unfold)); return; } if (p is IConvertible) { withValue((Enum)(p)); return; } if (p is Enum) { withValue((Enum)(p)); return; } withValue((Enum)(p)); }