public <T> T readStructure(Class<T> structureClass, DataType containingFieldDataType,
			BinaryReader structReader) throws IOException {
		StructureContext<T> structureContext =
			createStructureContext(structureClass, containingFieldDataType, structReader);

		T result = structureContext.readNewInstance();
		return result;
	}
Reads a structure mapped object from the current position of the specified BinaryReader.

@param <T> type of object
@param structureClass structure mapped object class
@param containingFieldDataType optional, data type of the structure field that contained the
object instance that is being read (may be different than the data type that was specified in
the matching {@link StructureMappingInfo})
@param structReader {@link BinaryReader} positioned at the start of an object
@return new object instance of type T
@throws IOException if error reading
@throws IllegalArgumentException if specified structureClass is not valid
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/structmapping/DataTypeMapper.java