writeTypeDef method
TypeDefIndex
writeTypeDef({
- required String namespace,
- required String name,
- TypeAttributes flags = const TypeAttributes(0),
- TypeDefOrRef extends$ = TypeDefOrRef.none,
Writes a TypeDef
row, returning the corresponding index.
Implementation
TypeDefIndex writeTypeDef({
required String namespace,
required String name,
TypeAttributes flags = const TypeAttributes(0),
TypeDefOrRef extends$ = TypeDefOrRef.none,
}) {
// Track root namespaces like "Windows.Foundation".
if (namespace.contains('.')) {
_levelTwoNamespaces.add(namespace.split('.').take(2).join('.'));
}
final table = _tableStream[MetadataTableId.typeDef];
final index = TypeDefIndex(table.length);
table.add(
TypeDef(
flags: flags,
name: _stringHeap.insert(name),
namespace: _stringHeap.insert(namespace),
extends$: extends$,
fieldList: FieldIndex(_tableStream[MetadataTableId.field].length),
methodList: MethodDefIndex(
_tableStream[MetadataTableId.methodDef].length,
),
),
);
return index;
}