code: func (r *DB) subrange(start, end uint16) []*attr {
  	startidx := r.idx(int(start))
  	switch startidx {
  	case tooSmall:
  		startidx = 0
  	case tooLarge:
  		return []*attr{}
  	}
  
  	endidx := r.idx(int(end) + 1) // [start, end] includes its upper bound!
  	switch endidx {
  	case tooSmall:
  		return []*attr{}
  	case tooLarge:
  		endidx = len(r.attrs)
  	}
  	return r.attrs[startidx:endidx]
  }
docs: // subrange returns attributes in range [start, end]; it may return an empty slice.
  // subrange does not panic for out-of-range start or end.