Packages
zoi
0.7.1
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/error.ex
defmodule Zoi.Error do
@type path :: [atom() | binary() | integer()]
@type t :: %__MODULE__{
message: binary(),
path: path()
}
defexception [:message, path: []]
@impl true
def exception(opts) do
struct!(__MODULE__, opts)
end
def add_path(%__MODULE__{} = error, path) when is_list(path) do
%{error | path: path ++ error.path}
end
def message(%__MODULE__{message: message}) do
message
end
end
defmodule Zoi.ParseError do
@moduledoc false
defexception [:errors]
@impl true
def exception(opts) do
struct!(__MODULE__, opts)
end
@impl true
def message(%__MODULE__{errors: errors}) when is_list(errors) do
"""
Parsing error:
#{Zoi.prettify_errors(errors)}
"""
end
end