code: func (it *EntryInfoIterator) Value() (EntryInfo, error) {
  	it.mutex.Lock()
  
  	if !it.valid {
  		it.mutex.Unlock()
  		return emptyEntryInfo, ErrInvalidIteratorState
  	}
  
  	entry, err := it.cache.shards[it.currentShard].getEntry(int(it.elements[it.currentIndex]))
  
  	if err != nil {
  		it.mutex.Unlock()
  		return emptyEntryInfo, ErrCannotRetrieveEntry
  	}
  	it.mutex.Unlock()
  
  	return EntryInfo{
  		timestamp: readTimestampFromEntry(entry),
  		hash:      readHashFromEntry(entry),
  		key:       readKeyFromEntry(entry),
  		value:     readEntry(entry),
  	}, nil
  }
docs: // Value returns current value from the iterator