private void parseMultiPayloadEnumDescriptors(SwiftSection section, BinaryReader reader)
			throws CancelledException {
		monitor.setMessage("Parsing Swift multipayload enum descriptors...");
		monitor.setIndeterminate(true);
		try {
			for (MemoryBlock block : SwiftUtils.getSwiftBlocks(section, program)) {
				Address blockStart = block.getStart();
				reader.setPointerIndex(blockStart.getOffset());
				int i = skipZeroEntries(reader, 0, block.getSize());
				while (i < block.getSize()) {
					monitor.checkCancelled();
					MultiPayloadEnumDescriptor descriptor = new MultiPayloadEnumDescriptor(reader);
					mpEnumDescriptors.add(descriptor);
					markupList.add(new SwiftStructureInfo(descriptor,
						new SwiftStructureAddress(blockStart.add(i), null)));
					i += MultiPayloadEnumDescriptor.SIZE + descriptor.getContentsSize();
					i = skipZeroEntries(reader, i, block.getSize());
				}
			}
		}
		catch (IOException e) {
			log("Failed to parse multipayload enum descriptors from section '" + section + "'");
		}
	}
Parses the {@link MultiPayloadEnumDescriptor}s

@param section The {@link SwiftSection} that contains the descriptors
@param reader A {@link BinaryReader}
@throws CancelledException if the user cancelled the operation
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/swift/SwiftTypeMetadata.java