Current section

Files

Jump to
caffeine_lang src caffeine_lang@linker@artifacts.erl
Raw

src/caffeine_lang@linker@artifacts.erl

-module(caffeine_lang@linker@artifacts).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/linker/artifacts.gleam").
-export([params_to_types/1, artifact_type_to_string/1, parse_artifact_type/1, parse_relation_type/1, relation_type_to_string/1]).
-export_type([param_info/0, artifact/0, artifact_type/0, dependency_relation_type/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.
-type param_info() :: {param_info,
caffeine_lang@types:accepted_types(),
binary()}.
-type artifact() :: {artifact,
artifact_type(),
binary(),
gleam@dict:dict(binary(), param_info())}.
-type artifact_type() :: s_l_o | dependency_relations.
-type dependency_relation_type() :: hard | soft.
-file("src/caffeine_lang/linker/artifacts.gleam", 27).
?DOC(false).
-spec params_to_types(gleam@dict:dict(binary(), param_info())) -> gleam@dict:dict(binary(), caffeine_lang@types:accepted_types()).
params_to_types(Params) ->
_pipe = Params,
gleam@dict:map_values(
_pipe,
fun(_, Param_info) -> erlang:element(2, Param_info) end
).
-file("src/caffeine_lang/linker/artifacts.gleam", 36).
?DOC(false).
-spec artifact_type_to_string(artifact_type()) -> binary().
artifact_type_to_string(Type_) ->
case Type_ of
s_l_o ->
<<"SLO"/utf8>>;
dependency_relations ->
<<"DependencyRelations"/utf8>>
end.
-file("src/caffeine_lang/linker/artifacts.gleam", 45).
?DOC(false).
-spec parse_artifact_type(binary()) -> {ok, artifact_type()} | {error, nil}.
parse_artifact_type(Raw) ->
case Raw of
<<"SLO"/utf8>> ->
{ok, s_l_o};
<<"DependencyRelations"/utf8>> ->
{ok, dependency_relations};
_ ->
{error, nil}
end.
-file("src/caffeine_lang/linker/artifacts.gleam", 63).
?DOC(false).
-spec parse_relation_type(binary()) -> {ok, dependency_relation_type()} |
{error, nil}.
parse_relation_type(S) ->
case S of
<<"hard"/utf8>> ->
{ok, hard};
<<"soft"/utf8>> ->
{ok, soft};
_ ->
{error, nil}
end.
-file("src/caffeine_lang/linker/artifacts.gleam", 73).
?DOC(false).
-spec relation_type_to_string(dependency_relation_type()) -> binary().
relation_type_to_string(Rt) ->
case Rt of
hard ->
<<"hard"/utf8>>;
soft ->
<<"soft"/utf8>>
end.