# toon_ex v1.1.0 - API Reference

## Modules

- [ToonEx](ToonEx.md): TOON (Token-Oriented Object Notation) encoder and decoder for Elixir.
- [ToonEx.Decode.Codegen](ToonEx.Decode.Codegen.md): Compile-time code generation utilities for the TOON decoder.
- [ToonEx.Decode.Fast.Decoder](ToonEx.Decode.Fast.Decoder.md): High-performance TOON decoder using pure binary pattern matching.
- [ToonEx.Decode.StructuralParser](ToonEx.Decode.StructuralParser.md): Structural parser for TOON format that handles indentation-based nesting.
- [ToonEx.Decode.StructuralParserV2](ToonEx.Decode.StructuralParserV2.md): Structural parser for TOON format that handles indentation-based nesting.
- [ToonEx.Fragment](ToonEx.Fragment.md): Provides a way to inject an already-encoded TOON structure into a
to-be-encoded structure in optimized fashion.
- [ToonEx.Helpers](ToonEx.Helpers.md): Provides macro facilities for partial compile-time encoding of TOON.

- Encoding
  - [ToonEx.Encode](ToonEx.Encode.md): Main encoder for TOON format.
  - [ToonEx.Encode.Arrays](ToonEx.Encode.Arrays.md): Encoding of TOON arrays in three formats:
- Inline: for primitive arrays (e.g., tags[2]: reading,gaming)
- Tabular: for uniform object arrays (e.g., users[2]{name,age}: Alice,30 / Bob,25)
- List: for mixed or non-uniform arrays

  - [ToonEx.Encode.Objects](ToonEx.Encode.Objects.md): Encoding of TOON objects (maps).

  - [ToonEx.Encode.Options](ToonEx.Encode.Options.md): Validation and normalization of encoding options.

  - [ToonEx.Encode.Primitives](ToonEx.Encode.Primitives.md): Encoding of primitive TOON values (nil, boolean, number, string).

  - [ToonEx.Encode.Strings](ToonEx.Encode.Strings.md): String encoding utilities for TOON format.
  - [ToonEx.Encode.Writer](ToonEx.Encode.Writer.md)
  - [ToonEx.Encoder](ToonEx.Encoder.md): Protocol for encoding custom data structures to TOON format.

- Decoding
  - [ToonEx.Decode](ToonEx.Decode.md): Main decoder for TOON format.
  - [ToonEx.Decode.Options](ToonEx.Decode.Options.md): Validation and normalization of decoding options.

  - [ToonEx.Decode.Parser](ToonEx.Decode.Parser.md): NimbleParsec-based parser for TOON format.

- Convertors
  - [ToonEx.JSON](ToonEx.JSON.md): Transforms between JSON and TOON format.

- ImplHelpers
  - [ToonEx.ToonImplHelper](ToonEx.ToonImplHelper.md)

- Phoenix
  - [ToonEx.Phoenix.Serializer](ToonEx.Phoenix.Serializer.md): Satisfies the `PhoenixClient` JSON-parser contract, which requires
`encode/2`, `encode!/2`, `decode/2`, `decode!/2` and `encode_to_iodata!`.  The optional
`opts` argument is accepted but intentionally ignored so that this
module can be dropped in wherever a standard JSON library is expected.

- Shared Types
  - [ToonEx.Constants](ToonEx.Constants.md): Constants used throughout the TOON encoder and decoder.
  - [ToonEx.Types](ToonEx.Types.md): Type definitions for TOON encoder and decoder.

- Errors
  - [ToonEx.DecodeError](ToonEx.DecodeError.md): Exception raised when decoding fails.
  - [ToonEx.EncodeError](ToonEx.EncodeError.md): Exception raised when encoding fails.

- Exceptions
  - [ToonEx.Options.Validator](ToonEx.Options.Validator.md): Pure Elixir options validator to replace NimbleOptions.

