# `Kombu.Clocks.Timetuple`
[🔗](https://github.com/hacktobeer/kombu/blob/v0.1.0/lib/kombu/clocks.ex#L6)

Event clock tuple (`kombu.clocks.timetuple`).

# `t`

```elixir
@type t() :: %Kombu.Clocks.Timetuple{
  clock: integer() | nil,
  id: String.t(),
  obj: term(),
  timestamp: float()
}
```

# `compare`

```elixir
@spec compare(t(), t()) :: :lt | :eq | :gt
```

Compare two `Timetuple` structs according to Kombu's ordering rules:
1. If both have non-nil/non-zero `clock`, compare by `clock`, breaking ties by `id`.
2. Otherwise compare by `timestamp`.

# `ge?`

```elixir
@spec ge?(t(), t()) :: boolean()
```

# `gt?`

```elixir
@spec gt?(t(), t()) :: boolean()
```

# `le?`

```elixir
@spec le?(t(), t()) :: boolean()
```

# `lt?`

```elixir
@spec lt?(t(), t()) :: boolean()
```

# `new`

```elixir
@spec new(integer() | nil, number(), String.t(), term()) :: t()
```

# `to_tuple`

```elixir
@spec to_tuple(t()) :: {integer() | nil, float(), String.t(), term()}
```

---

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