code: func (f Index) Last(prefix []byte) (i Item, err error) {
  	it := f.db.NewIterator()
  	defer it.Release()
  
  	// get the next prefix in line
  	// since leveldb iterator Seek seeks to the
  	// next key if the key that it seeks to is not found
  	// and by getting the previous key, the last one for the
  	// actual prefix is found
  	nextPrefix := incByteSlice(prefix)
  	l := len(prefix)
  
  	if l > 0 && nextPrefix != nil {
  		it.Seek(append(f.prefix, nextPrefix...))
  		it.Prev()
  	} else {
  		it.Last()
  	}
  
  	totalPrefix := append(f.prefix, prefix...)
  	return f.itemFromIterator(it, totalPrefix)
  }
docs: // Last returns the last item in the Index which encoded key starts with a prefix.
  // If the prefix is nil, the last element of the whole index is returned.
  // If Index has no elements, a leveldb.ErrNotFound error is returned.