-module(glance_printer). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([print/1]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -file("src/glance_printer.gleam", 260). -spec pretty_tuple(list(glam@doc:document())) -> glam@doc:document(). pretty_tuple(Elements) -> Comma_separated_elements = begin _pipe = Elements, glam@doc:join( _pipe, glam@doc:concat( [glam@doc:from_string(<<","/utf8>>), {break, <<" "/utf8>>, <<""/utf8>>}] ) ) end, _pipe@1 = glam@doc:concat( [glam@doc:from_string(<<"#("/utf8>>), {break, <<""/utf8>>, <<""/utf8>>}] ), _pipe@2 = glam@doc:append(_pipe@1, Comma_separated_elements), _pipe@3 = glance_printer@internal@doc_extras:nest(_pipe@2), _pipe@4 = glam@doc:append( _pipe@3, glam@doc:concat( [glance_printer@internal@doc_extras:trailing_comma(), glam@doc:from_string(<<")"/utf8>>)] ) ), glam@doc:group(_pipe@4). -file("src/glance_printer.gleam", 273). -spec pretty_list( list(glam@doc:document()), gleam@option:option(glam@doc:document()) ) -> glam@doc:document(). pretty_list(Elements, Tail) -> Tail@1 = begin _pipe = Tail, gleam@option:map( _pipe, fun(_capture) -> glam@doc:prepend(_capture, glam@doc:from_string(<<".."/utf8>>)) end ) end, Comma_separated_items = begin _pipe@1 = Elements, _pipe@2 = lists:append(_pipe@1, gleam@option:values([Tail@1])), glam@doc:concat_join( _pipe@2, [glam@doc:from_string(<<","/utf8>>), {break, <<" "/utf8>>, <<""/utf8>>}] ) end, _pipe@3 = glam@doc:concat( [glam@doc:from_string(<<"["/utf8>>), {break, <<""/utf8>>, <<""/utf8>>}] ), _pipe@4 = glam@doc:append(_pipe@3, Comma_separated_items), _pipe@5 = glance_printer@internal@doc_extras:nest(_pipe@4), _pipe@6 = glam@doc:append_docs( _pipe@5, [{break, <<""/utf8>>, <<""/utf8>>}, glam@doc:from_string(<<"]"/utf8>>)] ), glam@doc:group(_pipe@6). -file("src/glance_printer.gleam", 469). -spec pretty_binary_operator(glance:binary_operator()) -> glam@doc:document(). pretty_binary_operator(Operator) -> case Operator of 'and' -> glam@doc:from_string(<<"&&"/utf8>>); 'or' -> glam@doc:from_string(<<"||"/utf8>>); eq -> glam@doc:from_string(<<"=="/utf8>>); not_eq -> glam@doc:from_string(<<"!="/utf8>>); lt_int -> glam@doc:from_string(<<"<"/utf8>>); lt_eq_int -> glam@doc:from_string(<<"<="/utf8>>); lt_float -> glam@doc:from_string(<<"<."/utf8>>); lt_eq_float -> glam@doc:from_string(<<"<=."/utf8>>); gt_eq_int -> glam@doc:from_string(<<">="/utf8>>); gt_int -> glam@doc:from_string(<<">"/utf8>>); gt_eq_float -> glam@doc:from_string(<<">=."/utf8>>); gt_float -> glam@doc:from_string(<<">."/utf8>>); pipe -> glam@doc:from_string(<<"|>"/utf8>>); add_int -> glam@doc:from_string(<<"+"/utf8>>); add_float -> glam@doc:from_string(<<"+."/utf8>>); sub_int -> glam@doc:from_string(<<"-"/utf8>>); sub_float -> glam@doc:from_string(<<"-."/utf8>>); mult_int -> glam@doc:from_string(<<"*"/utf8>>); mult_float -> glam@doc:from_string(<<"*."/utf8>>); div_int -> glam@doc:from_string(<<"/"/utf8>>); div_float -> glam@doc:from_string(<<"/."/utf8>>); remainder_int -> glam@doc:from_string(<<"%"/utf8>>); concatenate -> glam@doc:from_string(<<"<>"/utf8>>) end. -file("src/glance_printer.gleam", 523). -spec pretty_bitstring_option( glance:bit_string_segment_option(IRD), fun((IRD) -> glam@doc:document()) ) -> glam@doc:document(). pretty_bitstring_option(Bitstring_option, Fun) -> case Bitstring_option of bits_option -> glam@doc:from_string(<<"bits"/utf8>>); bytes_option -> glam@doc:from_string(<<"bytes"/utf8>>); int_option -> glam@doc:from_string(<<"int"/utf8>>); float_option -> glam@doc:from_string(<<"float"/utf8>>); utf8_option -> glam@doc:from_string(<<"utf8"/utf8>>); utf16_option -> glam@doc:from_string(<<"utf16"/utf8>>); utf32_option -> glam@doc:from_string(<<"utf32"/utf8>>); utf8_codepoint_option -> glam@doc:from_string(<<"utf8_codepoint"/utf8>>); utf16_codepoint_option -> glam@doc:from_string(<<"utf16_codepoint"/utf8>>); utf32_codepoint_option -> glam@doc:from_string(<<"utf32_codepoint"/utf8>>); signed_option -> glam@doc:from_string(<<"signed"/utf8>>); unsigned_option -> glam@doc:from_string(<<"unsigned"/utf8>>); big_option -> glam@doc:from_string(<<"big"/utf8>>); little_option -> glam@doc:from_string(<<"little"/utf8>>); native_option -> glam@doc:from_string(<<"native"/utf8>>); {size_value_option, N} -> _pipe = [glam@doc:from_string(<<"size("/utf8>>), Fun(N), glam@doc:from_string(<<")"/utf8>>)], glam@doc:concat(_pipe); {size_option, N@1} -> glam@doc:from_string(erlang:integer_to_binary(N@1)); {unit_option, N@2} -> glam@doc:from_string( <<<<"unit("/utf8, (erlang:integer_to_binary(N@2))/binary>>/binary, ")"/utf8>> ) end. -file("src/glance_printer.gleam", 497). -spec pretty_bitstring( list({IQZ, list(glance:bit_string_segment_option(IQZ))}), fun((IQZ) -> glam@doc:document()) ) -> glam@doc:document(). pretty_bitstring(Segments, To_doc) -> Segments@1 = begin _pipe@3 = begin gleam@list:map( Segments, fun(Segment) -> {Expr, Options} = Segment, Options@1 = begin _pipe = Options, _pipe@1 = gleam@list:map( _pipe, fun(_capture) -> pretty_bitstring_option(_capture, To_doc) end ), glam@doc:join( _pipe@1, glam@doc:from_string(<<"-"/utf8>>) ) end, _pipe@2 = [To_doc(Expr), glam@doc:from_string(<<":"/utf8>>), Options@1], glam@doc:concat(_pipe@2) end ) end, glam@doc:concat_join( _pipe@3, [glam@doc:from_string(<<","/utf8>>), glam@doc:flex_break(<<" "/utf8>>, <<""/utf8>>)] ) end, _pipe@4 = [glam@doc:from_string(<<"<<"/utf8>>), {break, <<""/utf8>>, <<""/utf8>>}], _pipe@5 = glam@doc:concat(_pipe@4), _pipe@6 = glam@doc:append(_pipe@5, Segments@1), _pipe@7 = glance_printer@internal@doc_extras:nest(_pipe@6), _pipe@8 = glam@doc:append_docs( _pipe@7, [glance_printer@internal@doc_extras:trailing_comma(), glam@doc:from_string(<<">>"/utf8>>)] ), glam@doc:group(_pipe@8). -file("src/glance_printer.gleam", 726). -spec pretty_field(glance:field(IRK), fun((IRK) -> glam@doc:document())) -> glam@doc:document(). pretty_field(Field, A_to_doc) -> case Field of {labelled_field, Label, Type_} -> _pipe = glam@doc:from_string(<