Current section

Files

Jump to
zoi lib zoi types pick.ex
Raw

lib/zoi/types/pick.ex

defmodule Zoi.Types.Pick do
@moduledoc false
def new(%Zoi.Types.Map{fields: fields} = schema, keys) when is_list(fields) and is_list(keys) do
%{schema | fields: Keyword.take(fields, keys)}
end
def new(%Zoi.Types.Keyword{fields: fields} = schema, keys) when is_list(keys) do
%{schema | fields: Keyword.take(fields, keys)}
end
def new(_schema, _keys) do
raise ArgumentError, "must be an object or keyword"
end
end