@Override
	public DataType recoverDataType(GoTypeManager goTypes) throws IOException {
		Structure genericIfaceDT = programContext.getStructureDataType(GoIface.class);

		CategoryPath ifaceCP = goTypes.getCP(this);
		String ifaceName = goTypes.getTypeName(this);
		StructureDataType ifaceDT =
			new StructureDataType(ifaceCP, ifaceName, genericIfaceDT.getLength(), goTypes.getDTM());

		ifaceDT.replaceWith(genericIfaceDT);

		goTypes.cacheRecoveredDataType(this, ifaceDT);

		Structure itabStruct = getSpecializedITabStruct(ifaceCP, ifaceName, goTypes);

		int itabComponentOrdinal = 0; // TODO: hacky
		DataTypeComponentImpl genericItabDTC = ifaceDT.getComponent(itabComponentOrdinal);
		ifaceDT.replace(itabComponentOrdinal, goTypes.getDTM().getPointer(itabStruct), -1,
			genericItabDTC.getFieldName(), null);

		return ifaceDT;
	}
Returns the methods defined by this interface
@return methods defined by this interface
@throws IOException if error reading data
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/types/GoInterfaceType.java