# `Incant.Tabular`
[🔗](https://github.com/elixir-vibe/incant/blob/v0.1.1/lib/incant/tabular.ex#L1)

Normalizes common tabular data shapes into rows, columns, and metadata.

# `column`

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

# `metadata`

```elixir
@type metadata() :: %{:columns =&gt; [column()], optional(:count) =&gt; non_neg_integer()}
```

# `metadata`

```elixir
@spec metadata(term()) :: metadata()
```

Returns metadata for tabular data.

# `to_columns`

```elixir
@spec to_columns(
  term(),
  keyword()
) :: %{optional(column()) =&gt; [term()]}
```

Converts tabular data to a map of column enumerables.

# `to_rows`

```elixir
@spec to_rows(
  term(),
  keyword()
) :: [map()]
```

Converts tabular data to a list of row maps.

---

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