docs: def _segment_index(self, recarr, existing_index, start, new_segments):
          """
          Generate index of datetime64 -> item offset.
  
          Parameters:
          -----------
          new_data: new data being written (or appended)
          existing_index: index field from the versions document of the previous version
          start: first (0-based) offset of the new data
          segments: list of offsets. Each offset is the row index of the
                    the last row of a particular chunk relative to the start of the _original_ item.
                    array(new_data) - segments = array(offsets in item)
  
          Returns:
          --------
          Binary(compress(array([(index, datetime)]))
              Where index is the 0-based index of the datetime in the DataFrame
          """
          # find the index of the first datetime64 column
          idx_col = self._datetime64_index(recarr)
          # if one exists let's create the index on it
          if idx_col is not None:
              new_segments = np.array(new_segments, dtype='i8')
              last_rows = recarr[new_segments - start]
              # create numpy index
              index = np.core.records.fromarrays([last_rows[idx_col]] + [new_segments, ], dtype=INDEX_DTYPE)
              # append to existing index if exists
              if existing_index:
                  # existing_index_arr is read-only but it's never written to
                  existing_index_arr = np.frombuffer(decompress(existing_index), dtype=INDEX_DTYPE)
                  if start > 0:
                      existing_index_arr = existing_index_arr[existing_index_arr['index'] < start]
                  index = np.concatenate((existing_index_arr, index))
              return Binary(compress(index.tostring()))
          elif existing_index:
              raise ArcticException("Could not find datetime64 index in item but existing data contains one")
          return None