View Source Drops.Types.Map (drops v0.2.1)
Drops.Types.Map is a struct that represents a map type with optional constraints.
Examples
iex> Drops.Type.Compiler.visit({:type, {:map, []}}, [])
%Drops.Types.Primitive{primitive: :map, constraints: [predicate: {:type?, :map}]}
iex> Drops.Type.Compiler.visit(%{
...> {:required, :name} => {:type, {:string, []}},
...> {:optional, :age} => {:type, {:integer, []}}
...> }, [])
%Drops.Types.Map{
primitive: :map,
constraints: [predicate: {:type?, :map}],
keys: [
%Drops.Types.Map.Key{
path: [:age],
presence: :optional,
type: %Drops.Types.Primitive{
primitive: :integer,
constraints: [predicate: {:type?, :integer}]
}
},
%Drops.Types.Map.Key{
path: [:name],
presence: :required,
type: %Drops.Types.Primitive{
primitive: :string,
constraints: [predicate: {:type?, :string}]
}
}
],
atomize: false
}