1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 
5 namespace System.Reflection.Metadata.Ecma335
6 {
7     [Flags]
8     internal enum TypeDefTreatment : byte
9     {
10         None = 0,
11 
12         KindMask = 0x0f,
13         NormalNonAttribute = 1,
14         NormalAttribute = 2,
15         UnmangleWinRTName = 3,
16         PrefixWinRTName = 4,
17         RedirectedToClrType = 5,
18         RedirectedToClrAttribute = 6,
19 
20         MarkAbstractFlag = 0x10,
21         MarkInternalFlag = 0x20
22     }
23 
24     internal enum TypeRefTreatment : byte
25     {
26         None = 0,
27         SystemDelegate = 1,
28         SystemAttribute = 2,
29 
30         // RowId is an index to the projection info table.
31         UseProjectionInfo = 3,
32     }
33 
34     internal enum TypeRefSignatureTreatment : byte
35     {
36         None = 0,
37         ProjectedToClass = 1,
38         ProjectedToValueType = 2,
39     }
40 
41     [Flags]
42     internal enum MethodDefTreatment : byte
43     {
44         None = 0,
45 
46         KindMask = 0x0f,
47         Other = 1,
48         DelegateMethod = 2,
49         AttributeMethod = 3,
50         InterfaceMethod = 4,
51         Implementation = 5,
52         HiddenInterfaceImplementation = 6,
53         DisposeMethod = 7,
54 
55         MarkAbstractFlag = 0x10,
56         MarkPublicFlag = 0x20,
57         // TODO: In the latest Adapter.cpp sources this seems to be no longer applicable (confirm?)
58         // MarkSpecialName = 0x40
59     }
60 
61     [Flags]
62     internal enum FieldDefTreatment : byte
63     {
64         None = 0,
65         EnumValue = 1,
66     }
67 
68     [Flags]
69     internal enum MemberRefTreatment : byte
70     {
71         None = 0,
72         Dispose = 1,
73     }
74 
75     [Flags]
76     internal enum CustomAttributeTreatment : byte
77     {
78         None = 0,
79         WinMD = 1,
80     }
81 
82     [Flags]
83     internal enum CustomAttributeValueTreatment : byte
84     {
85         None = 0,
86         AttributeUsageAllowSingle = 1,
87         AttributeUsageAllowMultiple = 2,
88         AttributeUsageVersionAttribute = 3,
89         AttributeUsageDeprecatedAttribute = 4,
90     }
91 }
92