# `KiwiCodec.Schema.Binary.TypeIndex`
[🔗](https://github.com/open-pencil/kiwi_codec/blob/v0.7.0/lib/kiwi_codec/schema/binary/type_index.ex#L1)

Encodes and decodes type references in Kiwi's compact binary schema format.

Binary schemas encode primitive types as bitwise-negated primitive indexes and
user-defined schema types as non-negative indexes into the definition list.

# `decode`

```elixir
@spec decode(integer(), [KiwiCodec.Schema.definition()]) :: String.t()
```

# `encode`

```elixir
@spec encode(KiwiCodec.Schema.Field.t(), %{required(String.t()) =&gt; non_neg_integer()}) ::
  integer()
```

---

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