# flatbuf v0.1.0 - Table of Contents

> Pure-Elixir FlatBuffers with compile-time, file-emitting codegen.
Generated modules have no runtime dependency on :flatbuf.

## Pages

- [flatbuf](readme.md)
- [Changelog](changelog.md)

## Modules

- [Flatbuf](Flatbuf.md): `flatbuf` — pure-Elixir FlatBuffers with compile-time, file-emitting
code generation.
- [Flatbuf.Codegen](Flatbuf.Codegen.md): Entry point for code generation.
- [Flatbuf.Codegen.Enum](Flatbuf.Codegen.Enum.md): Emits an Elixir module for a FlatBuffers `enum` declaration.
- [Flatbuf.Codegen.Naming](Flatbuf.Codegen.Naming.md): Centralized fully-qualified-name → Elixir-module-name mapping.
- [Flatbuf.Codegen.Struct](Flatbuf.Codegen.Struct.md): Emits an Elixir module for a FlatBuffers `struct` declaration.
- [Flatbuf.Codegen.Table](Flatbuf.Codegen.Table.md): Emits an Elixir module for a FlatBuffers `table` declaration.
- [Flatbuf.Codegen.Union](Flatbuf.Codegen.Union.md): Emits an Elixir module for a FlatBuffers `union` declaration.
- [Flatbuf.Codegen.Wire](Flatbuf.Codegen.Wire.md): Emits the `<Root>.Flatbuf.Wire` helper module.
- [Flatbuf.Gen](Flatbuf.Gen.md): Shared helpers for the `flatbuf.gen`, `flatbuf.gen.check`, and
`compile.flatbuf` Mix tasks.
- [Flatbuf.Schema](Flatbuf.Schema.md): Resolved FlatBuffers schema IR.
- [Flatbuf.Schema.Enum](Flatbuf.Schema.Enum.md): A FlatBuffers `enum` declaration.
- [Flatbuf.Schema.Field](Flatbuf.Schema.Field.md): A single field in a `table` or `struct`.
- [Flatbuf.Schema.Lexer](Flatbuf.Schema.Lexer.md): Lexer for FlatBuffers schema (`.fbs`) source.
- [Flatbuf.Schema.Parser](Flatbuf.Schema.Parser.md): Recursive-descent parser for FlatBuffers `.fbs` source.
- [Flatbuf.Schema.Resolver](Flatbuf.Schema.Resolver.md): CST → `%Flatbuf.Schema{}` normalization.
- [Flatbuf.Schema.Struct](Flatbuf.Schema.Struct.md): A FlatBuffers `struct` declaration.
- [Flatbuf.Schema.Table](Flatbuf.Schema.Table.md): A FlatBuffers `table` declaration.
- [Flatbuf.Schema.Union](Flatbuf.Schema.Union.md): A FlatBuffers `union` declaration.
- [Flatbuf.Table](Flatbuf.Table.md): Opt-in behaviour that generated FlatBuffers table modules implement
when the project enables the `:behaviour` nicety.

## Mix Tasks

- [mix compile.flatbuf](Mix.Tasks.Compile.Flatbuf.md): Mix compiler that regenerates Elixir source from `.fbs` schemas before
the Elixir compiler runs. Wire it into your project by adding `:flatbuf`
to the `:compilers` list in `mix.exs` and configuring schema paths in
application config
- [mix flatbuf.gen](Mix.Tasks.Flatbuf.Gen.md): Generate Elixir modules from one or more FlatBuffers `.fbs` files.
- [mix flatbuf.gen.check](Mix.Tasks.Flatbuf.Gen.Check.md): Re-run the `flatbuf.gen` pipeline and compare its output to the files
currently on disk. Exits 0 if every emitted artifact already matches
the committed source, non-zero otherwise. Nothing is written.

