DataTypeComponent getBestMatchingDTC(Structure struct, DataTypeComponent matchCriteria) {
		for (DataTypeComponent dtc : struct.getComponentsContaining(matchCriteria.getOffset())) {
			DataType dt = dtc.getDataType();
			if (dtc.getOffset() == matchCriteria.getOffset() && !dt.isZeroLength()) {
				return dtc;
			}
		}
		return null;
	}
Returns true if one union is a subset of another union.
<p>
Each component of the candidate partial union must be present in the 'full'
union and must be 'equiv'.
<p>
Order of components is ignored, except for unnamed components, which receive
a default name created using their ordinal position.

@param full             {@link Union} datatype that is expected to be a
                        superset of the next param.
@param part             {@link Union} datatype that is expected to be a
                        subset of the previous param.
@param visitedDataTypes identity map of datatypes to prevent loops.
@return true if part is a subset (or equal) to full.
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFDataTypeConflictHandler.java