defmodule Hugs.Sample do require Hugs @todo "remove sample" Hugs.build_struct() |> Hugs.field(:ser_one, type: :integer, default: 100) |> Hugs.field(:ser_two, type: :integer, required: true) |> Hugs.field(:ser_map, type: {:map, :string, :integer}, required: false) |> Hugs.field(:sub, type: __MODULE__.Sub, required: true) |> Hugs.field(:sub_map, type: {:map, :string, __MODULE__.Sub}, required: false) |> Hugs.constraint(__MODULE__, :noop, []) |> Hugs.inject() def noop(data), do: {:ok, data} defmodule Sub do require Hugs Hugs.build_props() |> Hugs.field(:int, type: :integer, default: 100) |> Hugs.inject() end end