public final DataTypeComponent getComponentAt(int offset, MemBuffer buf) {
		// TODO: This interface should be consistent with Structure
		DataTypeComponent[] comps = getComps(buf);
		if (comps == null) {
			return null;
		}
		// TODO: could use binary search similar to StructureDataType
		for (DataTypeComponent comp : comps) {
			if (comp == null) {
				continue;
			}
			if (offset >= comp.getOffset() &&
				offset <= comp.getEndOffset()) {
				return comp;
			}
		}
		return null;
	}
Returns the first component containing the byte at the given offset.
It is possible with zero-length components (see {@link DataType#isZeroLength()})
and bitfields (see @DataTypeComponent#isBitFieldComponent()} for multiple components
to share the same offset.
@param offset the offset into the dataType
@param buf the memory buffer containing the bytes.
@return the first component containing the byte at the given offset or null if no
component defined.  A zero-length component may be returned.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/DynamicDataType.java