Want.Shape (want v1.13.1)

Provides macros for declaring an Ecto-like schema definition that can be used to cast incoming data. Most of the macro logic here was adapted from Ecto.Schema.

Link to this section Summary

Functions

Cast incoming data based on a Shape definition.

Cast incoming data based on a Shape definition. Raises on error.

Define a field within a shape.

Define a schema. Generates a struct definition for the current module that includes the data needed to correctly cast incoming JSON/map data into that struct, including field sourcing, type conversions, etc.

Link to this section Functions

Link to this function

cast(shape, data)

Specs

cast(module(), map()) :: {:ok, struct()} | {:error, reason :: term()}

Cast incoming data based on a Shape definition.

Link to this function

cast!(shape, data)

Specs

cast!(module(), map()) :: struct()

Cast incoming data based on a Shape definition. Raises on error.

Link to this macro

field(name, type \\ :string, opts \\ [])

(macro)

Define a field within a shape.

Link to this macro

shape(list)

(macro)

Define a schema. Generates a struct definition for the current module that includes the data needed to correctly cast incoming JSON/map data into that struct, including field sourcing, type conversions, etc.