ExParamsSchema.Caster (ex_params_schema v0.1.0)

Copy Markdown View Source

DSL の組み込み型へ入力値を変換します。

パーサー内部で使用します。個別の型変換を直接利用する必要がある場合を除き、 ExParamsSchema.parse/2 を使用してください。

Summary

Functions

入力値を DSL の組み込み型へ変換します。

Types

cast_result()

@type cast_result() ::
  {:ok, value :: ExParamsSchema.value()}
  | {:error, reason :: ExParamsSchema.error_reason()}

Functions

cast(value, arg2, reason)

入力値を 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 をエラーとして返します。