Current section
Files
Jump to
Current section
Files
src/gleamgen@render.erl
-module(gleamgen@render).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([default_context/0, to_string/1, pretty_list/1, body/2]).
-export_type([rendered/0, context/0]).
-type rendered() :: {render, glam@doc:document()}.
-type context() :: {context, boolean(), boolean()}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/render.gleam", 11).
-spec default_context() -> context().
default_context() ->
{context, true, true}.
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/render.gleam", 15).
-spec to_string(rendered()) -> binary().
to_string(To_render) ->
glam@doc:to_string(erlang:element(2, To_render), 80).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/render.gleam", 20).
-spec pretty_list(list(glam@doc:document())) -> glam@doc:document().
pretty_list(Parameters) ->
Comma = glam@doc:concat(
[glam@doc:from_string(<<","/utf8>>), {break, <<" "/utf8>>, <<""/utf8>>}]
),
Trailing_comma = glam@doc:break(<<""/utf8>>, <<","/utf8>>),
Open_paren = glam@doc:concat(
[glam@doc:from_string(<<"("/utf8>>), {break, <<""/utf8>>, <<""/utf8>>}]
),
Close_paren = glam@doc:concat(
[Trailing_comma, glam@doc:from_string(<<")"/utf8>>)]
),
_pipe = Parameters,
_pipe@1 = glam@doc:join(_pipe, Comma),
_pipe@2 = glam@doc:prepend(_pipe@1, Open_paren),
_pipe@3 = glam@doc:nest(_pipe@2, 2),
_pipe@4 = glam@doc:append(_pipe@3, Close_paren),
glam@doc:group(_pipe@4).
-file("/home/weasel/gleam/testing_gleamgen/gleamgen/src/gleamgen/render.gleam", 36).
-spec body(glam@doc:document(), boolean()) -> glam@doc:document().
body(Inside, Force_break) ->
Between_brackets = case Force_break of
true ->
{line, 1};
false ->
{break, <<" "/utf8>>, <<""/utf8>>}
end,
_pipe = Inside,
_pipe@1 = glam@doc:prepend(
_pipe,
glam@doc:concat([glam@doc:from_string(<<"{"/utf8>>), Between_brackets])
),
_pipe@2 = glam@doc:nest(_pipe@1, 2),
_pipe@3 = glam@doc:append(
_pipe@2,
glam@doc:concat([Between_brackets, glam@doc:from_string(<<"}"/utf8>>)])
),
glam@doc:group(_pipe@3).