# `FSST.Table`
[🔗](https://github.com/elixir-vibe/fsst/blob/v0.1.2/lib/fsst/table.ex#L1)

Opaque FSST symbol table.

Build tables with `FSST.train/2` or `FSST.Table.from_symbols/1` and pass them
to `FSST.compress/3` and `FSST.decompress/3`.

# `t`

```elixir
@type t() :: %FSST.Table{
  backend: module(),
  codes: %{required(binary()) =&gt; byte()} | nil,
  lengths: [pos_integer()] | nil,
  native: term(),
  pattern: tuple() | nil,
  symbols: tuple() | nil
}
```

# `from_symbols`

```elixir
@spec from_symbols([binary()]) :: {:ok, t()} | {:error, term()}
```

Builds a pure Elixir table from an existing serialized FSST symbol table.

Symbols must be provided in code order. Each symbol must be a binary from one
to eight bytes. Code `255` is reserved for escaped raw bytes, so at most 255
symbols are allowed.

# `from_symbols!`

```elixir
@spec from_symbols!([binary()]) :: t()
```

Builds a pure Elixir table from existing serialized symbols or raises.

---

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