code: def _ReadStructureFromByteStream(
        self, byte_stream, file_offset, data_type_map, description, context=None):
      
      if not byte_stream:
        raise ValueError('Invalid byte stream.')
  
      if not data_type_map:
        raise ValueError('Invalid data type map.')
  
      try:
        return data_type_map.MapByteStream(byte_stream, context=context)
      except dtfabric_errors.MappingError as exception:
        raise errors.FileFormatError((
            'Unable to map {0:s} data at offset: 0x{1:08x} with error: '
            '{2!s}').format(description, file_offset, exception))
docs: Reads a structure from a byte stream.
  
      Args:
        byte_stream (bytes): byte stream.
        file_offset (int): offset of the data relative from the start of
            the file-like object.
        data_type_map (dtfabric.DataTypeMap): data type map of the structure.
        description (str): description of the structure.
        context (Optional[dtfabric.DataTypeMapContext]): data type map context.
  
      Returns:
        object: structure values object.
  
      Raises:
        FileFormatError: if the structure cannot be read.
        ValueError: if file-like object or date type map are invalid.