code: func (mc *CCacheMetric) nextTsCore(itgen chunk.IterGen, prev, next uint32) uint32 {
  	span := itgen.Span()
  	if span > 0 {
  		// if the chunk is span-aware we don't need anything else
  		return itgen.T0 + span
  	}
  
  	// if chunk has a next chunk, then that's the ts we need
  	if next != 0 {
  		return next
  	}
  	// if chunk has no next chunk, but has a previous one, we assume the length of this one is same as the previous one
  	if prev != 0 {
  		return itgen.T0 + (itgen.T0 - prev)
  	}
  	// if a chunk has no next and no previous chunk we have to assume it's length is 0
  	return itgen.T0
  }
docs: // nextTsCore returns the ts of the next chunk, given a chunks key properties
  // (to the extent we know them). It guesses if necessary.
  // assumes we already have at least a read lock