-module(glemplate@assigns). -compile([no_auto_import, nowarn_unused_vars]). -export([new/0, from_list/1, add_string/3, add_int/3, add_lazy/3, add_bool/3, add_list/3, add_map/3]). -export_type([assign_data/0]). -type assign_data() :: {string, binary()} | {int, integer()} | {lazy, fun(() -> assign_data())} | {bool, boolean()} | {map, gleam@map:map_(binary(), assign_data())} | {list, list(assign_data())}. -spec new() -> gleam@map:map_(binary(), assign_data()). new() -> gleam@map:new(). -spec from_list(list({binary(), assign_data()})) -> gleam@map:map_(binary(), assign_data()). from_list(List) -> gleam@map:from_list(List). -spec add_string(gleam@map:map_(binary(), assign_data()), binary(), binary()) -> gleam@map:map_(binary(), assign_data()). add_string(Assigns, Name, Value) -> gleam@map:insert(Assigns, Name, {string, Value}). -spec add_int(gleam@map:map_(binary(), assign_data()), binary(), integer()) -> gleam@map:map_(binary(), assign_data()). add_int(Assigns, Name, Value) -> gleam@map:insert(Assigns, Name, {int, Value}). -spec add_lazy( gleam@map:map_(binary(), assign_data()), binary(), fun(() -> assign_data()) ) -> gleam@map:map_(binary(), assign_data()). add_lazy(Assigns, Name, Value) -> gleam@map:insert(Assigns, Name, {lazy, Value}). -spec add_bool(gleam@map:map_(binary(), assign_data()), binary(), boolean()) -> gleam@map:map_(binary(), assign_data()). add_bool(Assigns, Name, Value) -> gleam@map:insert(Assigns, Name, {bool, Value}). -spec add_list( gleam@map:map_(binary(), assign_data()), binary(), list(assign_data()) ) -> gleam@map:map_(binary(), assign_data()). add_list(Assigns, Name, Value) -> gleam@map:insert(Assigns, Name, {list, Value}). -spec add_map( gleam@map:map_(binary(), assign_data()), binary(), gleam@map:map_(binary(), assign_data()) ) -> gleam@map:map_(binary(), assign_data()). add_map(Assigns, Name, Value) -> gleam@map:insert(Assigns, Name, {map, Value}).