public void ImportCodeEnum <TEnum>(string enumName) where TEnum : struct, IComparable, IFormattable, IConvertible { Contract.Requires(!string.IsNullOrEmpty(enumName)); Contract.Requires(Actions.Count == 0, "Why are you importing an Enum after the DB has been loaded?"); var script_enum = MegaloScriptEnum.ForEnum <TEnum>(enumName); Enums.Add(script_enum); }
internal static MegaloScriptEnum ForEnum <TEnum>(string name) where TEnum : struct, IComparable, IFormattable, IConvertible { var result = new MegaloScriptEnum { Name = name, IsCodeEnum = true }; result.ForEnumPopulateMembers(Reflection.EnumUtil <TEnum> .Names, Reflection.EnumUtil <TEnum> .Values); return(result); }
static void ToFlagsNameValidateFlags(MegaloScriptEnum e, uint flags) { uint bitmask = Bits.GetBitmaskEnum((uint)e.Members.Count); Contract.Assert(Bitwise.Flags.Test(flags, ~bitmask) == false); }