Packages
zoi
0.9.0-rc.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/types/extend.ex
defmodule Zoi.Types.Extend do
@moduledoc false
def new(%Zoi.Types.Object{} = schema1, %Zoi.Types.Object{} = schema2, _opts) do
fields = Keyword.merge(schema1.fields, schema2.fields)
strict = schema1.strict || schema2.strict
coerce = schema1.coerce || schema2.coerce
Zoi.Types.Object.new(fields, strict: strict, coerce: coerce)
end
def new(%Zoi.Types.Keyword{} = schema1, %Zoi.Types.Keyword{} = schema2, _opts) do
fields = Keyword.merge(schema1.fields, schema2.fields)
strict = schema1.strict || schema2.strict
coerce = schema1.coerce || schema2.coerce
Zoi.Types.Keyword.new(fields, strict: strict, coerce: coerce)
end
def new(_schema1, _schema2, _opts) do
raise ArgumentError, "must be an object"
end
end