public Structure getSpecializedITabStruct(CategoryPath ifaceCP, String ifaceName,
			GoTypeManager goTypes) throws IOException {
		DataTypeManager dtm = goTypes.getDTM();

		Structure genericItabStruct = goTypes.getGenericITabDT();

		StructureDataType itabStruct = new StructureDataType(ifaceCP, ifaceName + "_itab", 0, dtm);
		itabStruct.replaceWith(genericItabStruct);

		FieldMappingInfo<GoItab> funFMI =
			programContext.getStructureMappingInfo(GoItab.class).getFieldInfo("fun");
		int funDTCOrdinal = funFMI.getDtc().getOrdinal();
		//DataTypeComponentImpl funDtc = itabStruct.getComponent(funDTCOrdinal);
		itabStruct.delete(funDTCOrdinal);

		CategoryPath funcsCP = ifaceCP.extend(itabStruct.getName() + "_funcs");
		for (GoIMethod imethod : getMethods()) {
			FunctionDefinition methodFuncDef = imethod.getFunctionDefinition(false, goTypes);
			try {
				methodFuncDef.setNameAndCategory(funcsCP, imethod.getName());
				itabStruct.add(dtm.getPointer(methodFuncDef), imethod.getName(), null);
				methodFuncDef
						.setCallingConvention(programContext.getDefaultCallingConventionName());
			}
			catch (InvalidNameException | DuplicateNameException | InvalidInputException e) {
				throw new IOException("Error creating itab for " + ifaceName, e);
			}
		}

		return itabStruct;
	}
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