Current section
Files
Jump to
Current section
Files
gen/src/string_builder.erl
-module(string_builder).
-compile(no_auto_import).
-export([new/1, string_formatter/1, string/2, arg_string_formatter/1, arg_string/1, int_formatter/1, int/2, arg_int_formatter/1, arg_int/1, int_list_formatter/1, int_list/2, arg_int_list_formatter/1, arg_int_list/1, identity/1, compose/2, end0/1, end1/1, end2/1, end3/1, end4/1, end5/1]).
new(Callback) ->
Callback(<<""/utf8>>).
string_formatter(Str) ->
fun(Callback) -> Callback(Str) end.
string(Previous, Str) ->
compose(Previous, string_formatter(Str)).
arg_string_formatter(Callback) ->
fun(Str) -> Callback(Str) end.
arg_string(Previous) ->
compose(Previous, fun arg_string_formatter/1).
int_formatter(N) ->
fun(Callback) -> Callback(gleam@int:to_string(N)) end.
int(Previous, N) ->
compose(Previous, int_formatter(N)).
arg_int_formatter(Callback) ->
fun(Int) -> Callback(gleam@int:to_string(Int)) end.
arg_int(Previous) ->
compose(Previous, fun arg_int_formatter/1).
format_int_list(L) ->
gleam@string:join(
gleam@list:map(L, fun gleam@int:to_string/1),
<<", "/utf8>>
).
int_list_formatter(L) ->
fun(Callback) -> Callback(format_int_list(L)) end.
int_list(Previous, L) ->
compose(Previous, int_list_formatter(L)).
arg_int_list_formatter(Callback) ->
fun(L) -> Callback(format_int_list(L)) end.
arg_int_list(Previous) ->
compose(Previous, fun arg_int_list_formatter/1).
identity(S) ->
S.
compose(Previous, Next) ->
fun(Callback) ->
Previous(
fun(PreviousStr) ->
Next(
fun(NextStr) ->
Callback(gleam@string:append(PreviousStr, NextStr))
end
)
end
)
end.
uncurry2(Fun) ->
fun(A, B) -> (Fun(A))(B) end.
uncurry3(Fun) ->
fun(A, B, C) -> ((Fun(A))(B))(C) end.
uncurry4(Fun) ->
fun(A, B, C, D) -> (((Fun(A))(B))(C))(D) end.
uncurry5(Fun) ->
fun(A, B, C, D, E) -> ((((Fun(A))(B))(C))(D))(E) end.
end0(Formatter) ->
fun() -> Formatter(fun identity/1) end.
end1(Formatter) ->
Formatter(fun identity/1).
end2(Formatter) ->
uncurry2(Formatter(fun identity/1)).
end3(Formatter) ->
uncurry3(Formatter(fun identity/1)).
end4(Formatter) ->
uncurry4(Formatter(fun identity/1)).
end5(Formatter) ->
uncurry5(Formatter(fun identity/1)).