# Dumbo v0.3.1 - Table of Contents

> PHP serialisation format support for Elixir

## Modules

- [Dumbo](Dumbo.md): An encoder and decoder for the [PHP serialisation format](https://en.wikipedia.org/wiki/PHP_serialisation_format).
- [Dumbo.DecodeOpts](Dumbo.DecodeOpts.md): Options for configuring decoding behavior.
- [Dumbo.Decoder](Dumbo.Decoder.md): Decoder implementation for the PHP serialisation format.

- [Dumbo.Encode](Dumbo.Encode.md): Low-level encoding functions for converting Elixir data types into PHP serialised iodata.

- [Dumbo.EncodeOpts](Dumbo.EncodeOpts.md): Options for configuring encoding behavior.
- [Dumbo.Encoder](Dumbo.Encoder.md): Protocol controlling how Elixir data structures are encoded into PHP serialised format.
- [Dumbo.ObjectResolver](Dumbo.ObjectResolver.md): Behaviour for converting a decoded PHP object into an Elixir term, typically a struct.
- [Dumbo.PHP](Dumbo.PHP.md): Resolvers for common PHP classes that map directly onto native Elixir types.

- Exceptions
  - [Dumbo.DecodeError](Dumbo.DecodeError.md): Exception raised when decoding a PHP serialised string fails.

  - [Dumbo.ReferenceError](Dumbo.ReferenceError.md): Exception raised when a reference (`R:n`) cannot be resolved, either because it
is out of range or because it is recursive (PHP allows cyclic data, Elixir
terms cannot).

  - [Dumbo.ResolveError](Dumbo.ResolveError.md): Raised when a resolver matches a PHP class but cannot represent its value.

