View Source Want.Shape (want v1.15.2)

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.

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.

Determine whether the given module represents 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.

Functions

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

Cast incoming data based on a Shape definition.

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

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

Link to this macro

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

View Source (macro)

Define a field within a shape.

@spec is_shape?(module()) :: boolean()

Determine whether the given module represents 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.