lib/behaviour.ex
defmodule MaxElixirPokeApi.Behaviour do
@moduledoc """
Behaviour from MaxElixirPokeApi.
"""
@typedoc """
Identifier as `{id or name}` used in `https://pokeapi.co/api/v2/{resource}/{id or name}/`
"""
@type id_or_name :: String.t() | integer()
@typedoc """
Response from lib functions
"""
@type response :: {:ok, map} | {:error, %{reason: String.t()}}
@callback resource(atom, integer, integer) :: response
@callback berry(id_or_name) :: response
@callback berry_firmness(id_or_name) :: response
@callback berry_flavor(id_or_name) :: response
@callback contest_type(id_or_name) :: response
@callback contest_effect(integer) :: response
@callback super_contest_effect(integer) :: response
@callback encounter_method(id_or_name) :: response
@callback encounter_condition(id_or_name) :: response
@callback encounter_condition_value(id_or_name) :: response
@callback evolution_chain(integer) :: response
@callback evolution_trigger(id_or_name) :: response
@callback generation(id_or_name) :: response
@callback pokedex(id_or_name) :: response
@callback version(id_or_name) :: response
@callback version_group(id_or_name) :: response
@callback item(id_or_name) :: response
@callback item_attribute(id_or_name) :: response
@callback item_category(id_or_name) :: response
@callback item_fling_effect(id_or_name) :: response
@callback item_pocket(id_or_name) :: response
@callback location(id_or_name) :: response
@callback location_area(id_or_name) :: response
@callback pal_park_area(id_or_name) :: response
@callback region(id_or_name) :: response
@callback machine(integer) :: response
@callback move(id_or_name) :: response
@callback move_ailment(id_or_name) :: response
@callback move_battle_style(id_or_name) :: response
@callback move_category(id_or_name) :: response
@callback move_damage_class(id_or_name) :: response
@callback move_learn_method(id_or_name) :: response
@callback move_target(id_or_name) :: response
@callback ability(id_or_name) :: response
@callback characteristic(integer) :: response
@callback egg_group(id_or_name) :: response
@callback gender(id_or_name) :: response
@callback growth_rate(id_or_name) :: response
@callback nature(id_or_name) :: response
@callback pokeathlon_stat(id_or_name) :: response
@callback pokemon(id_or_name) :: response
@callback pokemon_color(id_or_name) :: response
@callback pokemon_form(id_or_name) :: response
@callback pokemon_habitat(id_or_name) :: response
@callback pokemon_shape(id_or_name) :: response
@callback pokemon_species(id_or_name) :: response
@callback stat(id_or_name) :: response
@callback type(id_or_name) :: response
@callback language(id_or_name) :: response
end