DSL の組み込み型へ入力値を変換します。
パーサー内部で使用します。個別の型変換を直接利用する必要がある場合を除き、
ExParamsSchema.parse/2 を使用してください。
Summary
Functions
入力値を DSL の組み込み型へ変換します。
Types
@type cast_result() :: {:ok, value :: ExParamsSchema.value()} | {:error, reason :: ExParamsSchema.error_reason()}
Functions
@spec cast( ExParamsSchema.value(), ExParamsSchema.field_type(), ExParamsSchema.error_reason() ) :: cast_result()
入力値を DSL の組み込み型へ変換します。
iex> ExParamsSchema.Caster.cast("12", :integer, :invalid_count)
{:ok, 12}
iex> ExParamsSchema.Caster.cast("12px", :integer, :invalid_count)
{:error, :invalid_count}
iex> ExParamsSchema.Caster.cast("1e3", :number, :invalid_number)
{:ok, 1000.0}
iex> ExParamsSchema.Caster.cast("on", :boolean, :invalid_enabled)
{:ok, true}
iex> ExParamsSchema.Caster.cast(" Front ", :string, :invalid_label)
{:ok, "Front"}
iex> ExParamsSchema.Caster.cast("2026-07-23", :date, :invalid_date)
{:ok, ~D[2026-07-23]}
iex> ExParamsSchema.Caster.cast("merge", {:enum, [:merge, :replace]}, :invalid_mode)
{:ok, :merge}変換できない値は、呼び出し側から渡された reason をエラーとして返します。