Packages
zoi
0.18.6
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.1
0.16.0
0.15.0
0.14.1
0.14.0
0.13.1
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.9.0-rc.1
0.9.0-rc.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
Zoi is a schema validation library for Elixir, designed to provide a simple and flexible way to define and validate data.
Current section
Files
Jump to
Current section
Files
lib/zoi/validations/multiple_of.ex
defprotocol Zoi.Validations.MultipleOf do
@moduledoc false
@fallback_to_any true
@doc """
Sets the multiple_of constraint value on the schema.
The value must be a positive number that the input must be divisible by.
Custom error messages can be passed via opts[:error].
"""
@spec set(Zoi.schema(), term(), Zoi.options()) :: Zoi.schema()
def set(schema, value, opts)
@doc """
Validates input is a multiple of the given value.
The value is passed explicitly, not read from the schema.
Used by both field-based validation and :validation effects.
"""
@spec validate(Zoi.schema(), Zoi.input(), term(), Zoi.options()) ::
:ok | {:error, Zoi.Error.t()}
def validate(schema, input, value, opts)
end
defimpl Zoi.Validations.MultipleOf, for: Any do
def set(schema, value, opts) do
Zoi.refine(schema, {Zoi.Validations.MultipleOf, :validate, [value, opts]})
end
def validate(_schema, _input, _value, _opts), do: :ok
end