# `XMAVLink.Util.Tables`
[🔗](https://github.com/fancydrones/xmavlink/blob/main/lib/mavlink_util/tables.ex#L1)

Utility ETS table name helpers.

Most applications should use `XMAVLink.Util.CacheManager` query functions
instead of reading ETS tables directly. When an integration needs table names
for supervision or migration code, use this module rather than hard-coding
global names such as `:messages`, `:systems`, `:params`, and `:sessions`.

# `kind`

```elixir
@type kind() :: :messages | :systems | :params | :sessions
```

# `opts_or_prefix`

```elixir
@type opts_or_prefix() ::
  keyword()
  | %{optional(:table_prefix) =&gt; prefix()}
  | XMAVLink.Util.Context.t()
  | prefix()
```

# `prefix`

```elixir
@type prefix() :: atom() | String.t() | nil
```

# `name`

```elixir
@spec name(kind(), opts_or_prefix()) :: atom()
```

Return one utility table name for a context, prefix, or options.

# `names`

```elixir
@spec names(opts_or_prefix()) :: %{required(kind()) =&gt; atom()}
```

Return all utility table names for a context, prefix, or options.

---

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