Search
@type field() :: {name :: atom(), type :: module(), opts :: Keyword.t()}
@spec decode([field()], map(), Keyword.t()) :: {:ok, %{required(atom()) => term()}} | {:error, reason :: atom()}
@spec encode([field()], map(), Keyword.t()) :: {:ok, %{required(atom()) => term()}} | {:error, reason :: atom()}