Current section

Files

Jump to
glemplate src glemplate@assigns.erl
Raw

src/glemplate@assigns.erl

-module(glemplate@assigns).
-compile(no_auto_import).
-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}).