# estructura v1.12.0 - Table of Contents Extensions for Elixir structures. ## Pages - [Estructura](readme.md) - [Powerful Nested Structures](powerful-nested-structures.md) - [Tests as First-Class Citizens](tests-as-first-class-citizens.md) - [Estructura Cheatsheet](estructura.md) ## Modules - [Estructura](Estructura.md): `Estructura` is a set of extensions for Elixir structures, such as `Access` implementation, `Enumerable` and `Collectable` implementations, validations and test data generation via `StreamData`. - [Estructura.Aston](Estructura.Aston.md): The implementation of `Estructura` ready to work with tree AST-like structure - [Estructura.Coercer](Estructura.Coercer.md): Behaviour for coercion delegates. Instead of implementing the coercion handlers in `Estructura.Nested` inplace, one might do ```elixir coerce do defdelegate foo.bar.created_at(value), to: :date end ``` - [Estructura.Nested](Estructura.Nested.md): The nested struct with helpers to easily describe it and produce validation, coercion, and generation helpers. - Generators - [Estructura.StreamData](Estructura.StreamData.md): Additional generators to be used with `__generator__/1` generated by `Use Estructura` - Type Scaffolds - [Estructura.Nested.Type.Enum](Estructura.Nested.Type.Enum.md): `Estructura` type scaffold for creating enumerated types with a limited set of valid values. - [Estructura.Nested.Type.Struct](Estructura.Nested.Type.Struct.md): `Estructura` type scaffold for creating validatable and coercible types for structs. - [Estructura.Nested.Type.Tags](Estructura.Nested.Type.Tags.md): `Estructura` type for a set of predefined values, might be used as an implementation generator. - [Estructura.Nested.Type.TimeSeries](Estructura.Nested.Type.TimeSeries.md): `Estructura` type scaffold for creating time series types, where the value is predictable changing with a time. - JSON Schema - [Estructura.Nested.JsonSchema](Estructura.Nested.JsonSchema.md): Converts [JSON Schema](https://json-schema.org/) definitions into `Estructura.Nested`-compatible shape maps. - Types - [Estructura.Nested.Type](Estructura.Nested.Type.md): The type to be used for coercing, validating, and generation of the implementation’s instances. - [Estructura.Nested.Type.Date](Estructura.Nested.Type.Date.md): `Estructura` type implementation for handling `Date` values. - [Estructura.Nested.Type.DateTime](Estructura.Nested.Type.DateTime.md): `Estructura` type implementation for handling `DateTime` values. - [Estructura.Nested.Type.IP](Estructura.Nested.Type.IP.md): `Estructura` type for `Date` - [Estructura.Nested.Type.String](Estructura.Nested.Type.String.md): `Estructura` type for `String` - [Estructura.Nested.Type.Time](Estructura.Nested.Type.Time.md): `Estructura` type implementation for handling `Time` values. - [Estructura.Nested.Type.URI](Estructura.Nested.Type.URI.md): `Estructura` type implementation for handling `URI` values. - [Estructura.Nested.Type.UUID](Estructura.Nested.Type.UUID.md): `Estructura` type for `UUID` - Lazy - [Estructura.Lazy](Estructura.Lazy.md): The field stub allowing lazy instantiation of `Estructura` fields. - [Estructura.LazyMap](Estructura.LazyMap.md): The implementation of lazy map implementing lazy `Access` for its keys. - Protocols - [Estructura.Flattenable](Estructura.Flattenable.md) - [Estructura.Transformer](Estructura.Transformer.md) - Internals - [Estructura.Config](Estructura.Config.md): The configuration of the `Estructura` that is built from the parameters, passed as a second argument in a call to `use Estructura`. - Examples - [Estructura.Full](Estructura.Full.md): Full Example - [Estructura.User](Estructura.User.md): Nested example. The source code of the file follows.