36 internal struct Record : IRecord
38 internal int NestedClass;
39 internal int EnclosingClass;
41 readonly
int IRecord.FilterKey => NestedClass;
43 public readonly
int CompareTo(Record other) => Comparer<int>.Default.Compare(NestedClass, other.NestedClass);
47 internal const int Index = 0x29;
49 internal override void Read(Reader.MetadataReader mr)
51 for (
int i = 0; i < records.Length; i++)
53 records[i].NestedClass = mr.ReadTypeDef();
54 records[i].EnclosingClass = mr.ReadTypeDef();
58 internal override void Write(ModuleBuilder module)
60 for (
int i = 0; i < rowCount; i++)
61 module.Metadata.AddNestedType(
62 (TypeDefinitionHandle)MetadataTokens.EntityHandle(records[i].NestedClass),
63 (TypeDefinitionHandle)MetadataTokens.EntityHandle(records[i].EnclosingClass));
66 internal List<int> GetNestedClasses(
int enclosingClass)
68 var nestedClasses =
new List<int>();
69 for (
int i = 0; i < rowCount; i++)
70 if (records[i].EnclosingClass == enclosingClass)
71 nestedClasses.Add(records[i].NestedClass);