-module(tallgrass@evolution@chain). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([new/0, fetch_resource/2, fetch/1, fetch_by_id/2]). -export_type([evolution_chain/0, chain_link/0, evolution_detail/0]). -type evolution_chain() :: {evolution_chain, integer(), gleam@option:option(tallgrass@common@resource:resource()), chain_link()}. -type chain_link() :: {chain_link, boolean(), tallgrass@common@resource:resource(), list(evolution_detail())}. -type evolution_detail() :: {evolution_detail, gleam@option:option(tallgrass@common@resource:resource()), tallgrass@common@resource:resource(), integer(), gleam@option:option(tallgrass@common@resource:resource()), gleam@option:option(tallgrass@common@resource:resource()), gleam@option:option(tallgrass@common@resource:resource()), gleam@option:option(tallgrass@common@resource:resource()), integer(), gleam@option:option(integer()), gleam@option:option(integer()), gleam@option:option(integer()), boolean(), gleam@option:option(tallgrass@common@resource:resource()), gleam@option:option(tallgrass@common@resource:resource()), integer(), binary(), gleam@option:option(tallgrass@common@resource:resource()), boolean()}. -file("/Users/stevetoro/Code/tallgrass/src/tallgrass/evolution/chain.gleam", 47). -spec new() -> tallgrass@client:client(). new() -> tallgrass@client:new(). -file("/Users/stevetoro/Code/tallgrass/src/tallgrass/evolution/chain.gleam", 115). -spec evolution_details() -> decode:decoder(evolution_detail()). evolution_details() -> _pipe = decode:into( (decode:parameter( fun(Item) -> decode:parameter( fun(Trigger) -> decode:parameter( fun(Gender) -> decode:parameter( fun(Held_item) -> decode:parameter( fun(Known_move) -> decode:parameter( fun(Known_move_type) -> decode:parameter( fun(Location) -> decode:parameter( fun( Min_level ) -> decode:parameter( fun( Min_happiness ) -> decode:parameter( fun( Min_beauty ) -> decode:parameter( fun( Min_affection ) -> decode:parameter( fun( Needs_overworld_rain ) -> decode:parameter( fun( Party_species ) -> decode:parameter( fun( Party_type ) -> decode:parameter( fun( Relative_physical_stats ) -> decode:parameter( fun( Time_of_day ) -> decode:parameter( fun( Trade_species ) -> decode:parameter( fun( Turn_upside_down ) -> {evolution_detail, Item, Trigger, Gender, Held_item, Known_move, Known_move_type, Location, Min_level, Min_happiness, Min_beauty, Min_affection, Needs_overworld_rain, Party_species, Party_type, Relative_physical_stats, Time_of_day, Trade_species, Turn_upside_down} end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end )) ), _pipe@1 = decode:field( _pipe, <<"item"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), _pipe@2 = decode:field( _pipe@1, <<"trigger"/utf8>>, tallgrass@common@resource:resource() ), _pipe@3 = decode:field( _pipe@2, <<"gender"/utf8>>, {decoder, fun gleam@dynamic:int/1} ), _pipe@4 = decode:field( _pipe@3, <<"held_item"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), _pipe@5 = decode:field( _pipe@4, <<"known_move"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), _pipe@6 = decode:field( _pipe@5, <<"known_move_type"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), _pipe@7 = decode:field( _pipe@6, <<"location"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), _pipe@8 = decode:field( _pipe@7, <<"min_level"/utf8>>, {decoder, fun gleam@dynamic:int/1} ), _pipe@9 = decode:field( _pipe@8, <<"min_happiness"/utf8>>, decode:optional({decoder, fun gleam@dynamic:int/1}) ), _pipe@10 = decode:field( _pipe@9, <<"min_beauty"/utf8>>, decode:optional({decoder, fun gleam@dynamic:int/1}) ), _pipe@11 = decode:field( _pipe@10, <<"min_affection"/utf8>>, decode:optional({decoder, fun gleam@dynamic:int/1}) ), _pipe@12 = decode:field( _pipe@11, <<"needs_overworld_rain"/utf8>>, {decoder, fun gleam@dynamic:bool/1} ), _pipe@13 = decode:field( _pipe@12, <<"party_species"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), _pipe@14 = decode:field( _pipe@13, <<"party_type"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), _pipe@15 = decode:field( _pipe@14, <<"relative_physical_stats"/utf8>>, {decoder, fun gleam@dynamic:int/1} ), _pipe@16 = decode:field( _pipe@15, <<"time_of_day"/utf8>>, {decoder, fun gleam@dynamic:string/1} ), _pipe@17 = decode:field( _pipe@16, <<"trade_species"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), decode:field( _pipe@17, <<"turn_upside_down"/utf8>>, {decoder, fun gleam@dynamic:bool/1} ). -file("/Users/stevetoro/Code/tallgrass/src/tallgrass/evolution/chain.gleam", 99). -spec chain_link() -> decode:decoder(chain_link()). chain_link() -> _pipe = decode:into( (decode:parameter( fun(Is_baby) -> decode:parameter( fun(Species) -> decode:parameter( fun(Evolution_details) -> {chain_link, Is_baby, Species, Evolution_details} end ) end ) end )) ), _pipe@1 = decode:field( _pipe, <<"is_baby"/utf8>>, {decoder, fun gleam@dynamic:bool/1} ), _pipe@2 = decode:field( _pipe@1, <<"species"/utf8>>, tallgrass@common@resource:resource() ), decode:field( _pipe@2, <<"evolution_details"/utf8>>, decode:list(evolution_details()) ). -file("/Users/stevetoro/Code/tallgrass/src/tallgrass/evolution/chain.gleam", 87). -spec evolution_chain() -> decode:decoder(evolution_chain()). evolution_chain() -> _pipe = decode:into( (decode:parameter( fun(Id) -> decode:parameter( fun(Baby_trigger_item) -> decode:parameter( fun(Chain) -> {evolution_chain, Id, Baby_trigger_item, Chain} end ) end ) end )) ), _pipe@1 = decode:field( _pipe, <<"id"/utf8>>, {decoder, fun gleam@dynamic:int/1} ), _pipe@2 = decode:field( _pipe@1, <<"baby_trigger_item"/utf8>>, decode:optional(tallgrass@common@resource:resource()) ), decode:field(_pipe@2, <<"chain"/utf8>>, chain_link()). -file("/Users/stevetoro/Code/tallgrass/src/tallgrass/evolution/chain.gleam", 72). -spec fetch_resource( tallgrass@client:client(), tallgrass@common@resource:resource() ) -> {ok, evolution_chain()} | {error, tallgrass@client@request:error()}. fetch_resource(Client, Resource) -> tallgrass@client:fetch_resource(Client, Resource, evolution_chain()). -file("/Users/stevetoro/Code/tallgrass/src/tallgrass/evolution/chain.gleam", 58). -spec fetch(tallgrass@client:client()) -> {ok, tallgrass@common@resource:paginated_resource()} | {error, tallgrass@client@request:error()}. fetch(Client) -> tallgrass@client:fetch_resources(Client, <<"evolution-chain"/utf8>>). -file("/Users/stevetoro/Code/tallgrass/src/tallgrass/evolution/chain.gleam", 83). -spec fetch_by_id(tallgrass@client:client(), integer()) -> {ok, evolution_chain()} | {error, tallgrass@client@request:error()}. fetch_by_id(Client, Id) -> tallgrass@client:fetch_by_id( Client, <<"evolution-chain"/utf8>>, Id, evolution_chain() ).