# `Tidefall.HashMap.Entry`
[🔗](https://github.com/cabol/tidefall/blob/v1.0.0/lib/tidefall/hash_map/entry.ex#L1)

A processed entry from `Tidefall.HashMap`.

The processor receives a list of these structs on every
processing tick:

    fn batch ->
      Enum.each(batch, fn %Tidefall.HashMap.Entry{key: k, value: v} ->
        process(k, v)
      end)
    end

See `t:t/0` for the full field-by-field semantics.

# `t`

```elixir
@type t() :: %Tidefall.HashMap.Entry{
  key: any(),
  updates: non_neg_integer(),
  value: any(),
  version: Tidefall.HashMap.version()
}
```

A processed entry struct.

## Fields

  * `:key` — The user-facing key. If the entry was written with
    the `:key_hasher` option, `:key` holds the **original**
    (pre-hash) key; the hash is an internal storage detail and
    is never surfaced here.
  * `:value` — The stored value.
  * `:version` — The version stamp. Set explicitly via
    `Tidefall.HashMap.put_newer/4` /
    `Tidefall.HashMap.put_all_newer/3`; `0` for entries
    written via plain `Tidefall.HashMap.put/4` /
    `Tidefall.HashMap.put_all/3`.
  * `:updates` — How many times this entry was conditionally
    replaced by a newer version. `0` for new inserts and for
    entries written via plain `Tidefall.HashMap.put/4` /
    `Tidefall.HashMap.put_all/3`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
