lib/fussy/validators/default.ex
defmodule Fussy.Validators.Default do
@behaviour Fussy.Validator
alias Fussy.Utils
defstruct [:inner, :default]
@opaque t :: %__MODULE__{}
@spec new(Fussy.Validator.t(), term()) :: __MODULE__.t()
def new(inner, default) do
%__MODULE__{inner: inner, default: default}
end
@impl true
def validate(%__MODULE__{default: default}, nil) do
{:ok, default}
end
@impl true
def validate(%__MODULE__{inner: inner}, term) do
Utils.validate_using(inner, term)
end
end