Example #1
0
 BasicData ReadBitFlags(BitflagsSchema bitflagsSchema, ReadingContext context)
 {
     if (Document.Basics.TryGetValue(bitflagsSchema.Storage, out var basicSchema))
     {
         return(ReadBasicFunc(basicSchema, context));
     }
     throw new Exception();
 }
Example #2
0
        EnumBuilder BuildBitflagType(ModuleBuilder moduleBuilder, BitflagsSchema schema, SchemaDocument document)
        {
            var name = schema.Name.ToPascalCase();
            var attr = TypeAttributes.Public;
            var underlyingTypeDescription = BasicTypeDescriptions
                                            .BasicDescriptions[document.Basics[schema.Storage]];

            Type            flagsAttributeType   = typeof(FlagsAttribute);
            ConstructorInfo attributeConstructor = flagsAttributeType.GetConstructor(new Type[] { });

            var underlingType  = underlyingTypeDescription.UnderlyingType;
            var bitflagBuilder = moduleBuilder.DefineEnum(name, attr, underlingType);

            //bitflagBuilder.SetCustomAttribute(attributeConstructor, new byte[] { 01, 00, 01 });
            return(bitflagBuilder);
        }