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}
def validate(%__MODULE__{} = v, term), do: validate(v, [], term)
@impl true
def validate(%__MODULE__{}, _path, nil), do: {:ok, nil}
@impl true
def validate(%__MODULE__{inner: inner}, path, data) do
Utils.validate_using(inner, path, data)
end
end