Current section

Files

Jump to
pokemon_names src internal@pokemon_names_codegen.erl
Raw

src/internal@pokemon_names_codegen.erl

-module(internal@pokemon_names_codegen).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/internal/pokemon_names_codegen.gleam").
-export([main/0]).
-file("src/internal/pokemon_names_codegen.gleam", 5).
-spec main() -> {ok, nil} | {error, simplifile:file_error()}.
main() ->
Data@1 = case simplifile:read(<<"priv/pokemon.csv"/utf8>>) of
{ok, Data} -> Data;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"internal/pokemon_names_codegen"/utf8>>,
function => <<"main"/utf8>>,
line => 6,
value => _assert_fail,
start => 75,
'end' => 132,
pattern_start => 86,
pattern_end => 94})
end,
Elements = begin
_pipe = gleam@string:split(Data@1, <<"\n"/utf8>>),
_pipe@1 = gleam@list:drop(_pipe, 1),
_pipe@2 = gleam@list:filter(
_pipe@1,
fun(Line) -> Line /= <<""/utf8>> end
),
_pipe@3 = gleam@list:map(
_pipe@2,
fun(Line@1) ->
{Species_id@1, Language_id@1, Name@1, Genus@1} = case gleam@string:split(
Line@1,
<<","/utf8>>
) of
[Species_id, Language_id, Name, Genus] -> {
Species_id,
Language_id,
Name,
Genus};
_assert_fail@1 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"internal/pokemon_names_codegen"/utf8>>,
function => <<"main"/utf8>>,
line => 12,
value => _assert_fail@1,
start => 276,
'end' => 359,
pattern_start => 287,
pattern_end => 325})
end,
<<<<<<<<<<<<<<<<"Pokemon(species_id: "/utf8,
Species_id@1/binary>>/binary,
", language_id: "/utf8>>/binary,
Language_id@1/binary>>/binary,
", name: \""/utf8>>/binary,
Name@1/binary>>/binary,
"\", genus: \""/utf8>>/binary,
Genus@1/binary>>/binary,
"\")"/utf8>>
end
),
gleam@string:join(_pipe@3, <<",\n "/utf8>>)
end,
Code = <<<<"pub type Pokemon {
Pokemon(species_id: Int, language_id: Int, name: String, genus: String)
}
pub const pokemon: List(Pokemon) = [
"/utf8,
Elements/binary>>/binary,
",
]"/utf8>>,
_assert_subject = simplifile:write(
<<"src/internal/pokemon_gen.gleam"/utf8>>,
Code
),
case _assert_subject of
{ok, _} -> _assert_subject;
_assert_fail@2 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"internal/pokemon_names_codegen"/utf8>>,
function => <<"main"/utf8>>,
line => 32,
value => _assert_fail@2,
start => 757,
'end' => 832,
pattern_start => 768,
pattern_end => 773})
end.