Current section

Files

Jump to
gleamgen src gleamgen@internal@import_reference.erl
Raw

src/gleamgen@internal@import_reference.erl

-module(gleamgen@internal@import_reference).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gleamgen/internal/import_reference.gleam").
-export([get_module_representation/1, get_reference/2, new_implied_reference/1]).
-export_type([import_reference/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-type import_reference() :: {import_reference,
list(binary()),
gleam@option:option(binary()),
boolean(),
gleam@dict:dict(binary(), binary())}.
-file("src/gleamgen/internal/import_reference.gleam", 21).
?DOC(false).
-spec get_module_representation(import_reference()) -> binary().
get_module_representation(Imported) ->
case erlang:element(3, Imported) of
{some, Alias} ->
Alias;
none ->
case gleam@list:last(erlang:element(2, Imported)) of
{ok, Name} ->
Name;
{error, _} ->
<<""/utf8>>
end
end.
-file("src/gleamgen/internal/import_reference.gleam", 32).
?DOC(false).
-spec get_reference(import_reference(), binary()) -> glam@doc:document().
get_reference(Imported, Item_name) ->
case erlang:element(3, Imported) of
{some, Alias} ->
case gleam_stdlib:map_get(erlang:element(5, Imported), Item_name) of
{ok, Alias_name} ->
glam@doc:from_string(Alias_name);
{error, _} ->
glam@doc:from_string(
<<<<Alias/binary, "."/utf8>>/binary, Item_name/binary>>
)
end;
none ->
Name@1 = case begin
_pipe = erlang:element(2, Imported),
gleam@list:last(_pipe)
end of
{ok, Name} -> Name;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"gleamgen/internal/import_reference"/utf8>>,
function => <<"get_reference"/utf8>>,
line => 44,
value => _assert_fail,
start => 914,
'end' => 964,
pattern_start => 925,
pattern_end => 933})
end,
case gleam_stdlib:map_get(erlang:element(5, Imported), Item_name) of
{ok, Alias_name@1} ->
glam@doc:from_string(Alias_name@1);
{error, nil} ->
glam@doc:from_string(
<<<<Name@1/binary, "."/utf8>>/binary, Item_name/binary>>
)
end
end.
-file("src/gleamgen/internal/import_reference.gleam", 53).
?DOC(false).
-spec new_implied_reference(list(binary())) -> import_reference().
new_implied_reference(Name) ->
{import_reference, Name, none, true, maps:new()}.