lib/fussy/validators/optional.ex

defmodule Fussy.Validators.Optional do
  @behaviour Fussy.Validator

  alias Fussy.Utils

  defstruct [:inner]

  def new(inner), do: %__MODULE__{inner: inner}

  @impl true
  def validate(_, nil) do
    {:ok, nil}
  end

  @impl true
  def validate(%__MODULE__{inner: inner}, data) do
    Utils.validate_using(inner, data)
  end
end