Skip to main content

Crate pogo_masterfile_types

Crate pogo_masterfile_types 

Source
Expand description

Generated Rust types for the Pokémon GO masterfile.

§Quick start

use pogo_masterfile_types::{parse_masterfile, MasterfileEntry};

let json = std::fs::read_to_string("masterfile.json").unwrap();
let entries = parse_masterfile(&json).unwrap();
for entry in entries {
    match entry {
        MasterfileEntry::PokemonSettings(e) => {
            println!("pokémon: {}", e.template_id);
        }
        _ => {}
    }
}

§Generated structure

Each masterfile discriminator maps to its own module containing three types:

Singletons (entries unique by templateId) are bundled into a single singletons module rather than emitted one file each.

Modules§

avatar_customization
Generated from Pokémon GO masterfile — group “avatarCustomization”.
avatar_group_order_settings
Generated from Pokémon GO masterfile — group “avatarGroupOrderSettings”.
avatar_item_display
Generated from Pokémon GO masterfile — group “avatarItemDisplay”.
badge_settings
Generated from Pokémon GO masterfile — group “badgeSettings”.
bread_move_level_settings
Generated from Pokémon GO masterfile — group “breadMoveLevelSettings”.
buddy_activity_category_settings
Generated from Pokémon GO masterfile — group “buddyActivityCategorySettings”.
buddy_emotion_level_settings
Generated from Pokémon GO masterfile — group “buddyEmotionLevelSettings”.
buddy_level_settings
Generated from Pokémon GO masterfile — group “buddyLevelSettings”.
client_quest_template
Generated from Pokémon GO masterfile — group “clientQuestTemplate”.
code_gate_proto
Generated from Pokémon GO masterfile — group “codeGateProto”.
combat_league
Generated from Pokémon GO masterfile — group “combatLeague”.
combat_move
Generated from Pokémon GO masterfile — group “combatMove”.
combat_npc_personality
Generated from Pokémon GO masterfile — group “combatNpcPersonality”.
combat_npc_trainer
Generated from Pokémon GO masterfile — group “combatNpcTrainer”.
combat_ranking_proto_settings
Generated from Pokémon GO masterfile — group “combatRankingProtoSettings”.
combat_type
Generated from Pokémon GO masterfile — group “combatType”.
deprecated
event_pass_settings
Generated from Pokémon GO masterfile — group “eventPassSettings”.
event_pass_tier_settings
Generated from Pokémon GO masterfile — group “eventPassTierSettings”.
evolution_chain_display_settings
Generated from Pokémon GO masterfile — group “evolutionChainDisplaySettings”.
evolution_quest_template
Generated from Pokémon GO masterfile — group “evolutionQuestTemplate”.
feature_gate
Generated from Pokémon GO masterfile — group “featureGate”.
form_settings
Generated from Pokémon GO masterfile — group “formSettings”.
fort_power_up_level_settings
Generated from Pokémon GO masterfile — group “fortPowerUpLevelSettings”.
friendship_milestone_settings
Generated from Pokémon GO masterfile — group “friendshipMilestoneSettings”.
gender_settings
Generated from Pokémon GO masterfile — group “genderSettings”.
iap_category_display
Generated from Pokémon GO masterfile — group “iapCategoryDisplay”.
iap_item_display
Generated from Pokémon GO masterfile — group “iapItemDisplay”.
invasion_npc_display_settings
Generated from Pokémon GO masterfile — group “invasionNpcDisplaySettings”.
item_expiration_settings
Generated from Pokémon GO masterfile — group “itemExpirationSettings”.
item_settings
Generated from Pokémon GO masterfile — group “itemSettings”.
language_settings
Generated from Pokémon GO masterfile — group “languageSettings”.
level_up_rewards
Generated from Pokémon GO masterfile — group “levelUpRewards”.
limited_purchase_sku_settings
Generated from Pokémon GO masterfile — group “limitedPurchaseSkuSettings”.
location_card_settings
Generated from Pokémon GO masterfile — group “locationCardSettings”.
mega_evo_level_settings
Generated from Pokémon GO masterfile — group “megaEvoLevelSettings”.
move_sequence_settings
Generated from Pokémon GO masterfile — group “moveSequenceSettings”.
move_settings
Generated from Pokémon GO masterfile — group “moveSettings”.
non_combat_move_settings
Generated from Pokémon GO masterfile — group “nonCombatMoveSettings”.
party_play_general_settings
Generated from Pokémon GO masterfile — group “partyPlayGeneralSettings”.
photo_sets_settings_proto
Generated from Pokémon GO masterfile — group “photoSetsSettingsProto”.
pokemon_extended_settings
Generated from Pokémon GO masterfile — group “pokemonExtendedSettings”.
pokemon_family
Generated from Pokémon GO masterfile — group “pokemonFamily”.
pokemon_home_energy_costs
Generated from Pokémon GO masterfile — group “pokemonHomeEnergyCosts”.
pokemon_home_form_reversions
Generated from Pokémon GO masterfile — group “pokemonHomeFormReversions”.
pokemon_scale_settings
Generated from Pokémon GO masterfile — group “pokemonScaleSettings”.
pokemon_settings
Generated from Pokémon GO masterfile — group “pokemonSettings”.
pokemon_upgrades
Generated from Pokémon GO masterfile — group “pokemonUpgrades”.
pokestop_invasion_availability_settings
Generated from Pokémon GO masterfile — group “pokestopInvasionAvailabilitySettings”.
quest_settings
Generated from Pokémon GO masterfile — group “questSettings”.
recommended_search_settings
Generated from Pokémon GO masterfile — group “recommendedSearchSettings”.
roll_back
Generated from Pokémon GO masterfile — group “rollBack”.
settings_override_rule
Generated from Pokémon GO masterfile — group “settingsOverrideRule”.
singletons
Generated from Pokémon GO masterfile — singletons (one-of-a-kind entries).
sticker_metadata
Generated from Pokémon GO masterfile — group “stickerMetadata”.
tappable_settings
Generated from Pokémon GO masterfile — group “tappableSettings”.
temporary_evolution_settings
Generated from Pokémon GO masterfile — group “temporaryEvolutionSettings”.
type_effective
Generated from Pokémon GO masterfile — group “typeEffective”.
vs_seeker_loot
Generated from Pokémon GO masterfile — group “vsSeekerLoot”.
vs_seeker_pokemon_rewards
Generated from Pokémon GO masterfile — group “vsSeekerPokemonRewards”.
weather_affinities
Generated from Pokémon GO masterfile — group “weatherAffinities”.

Macros§

masterfile_entry
Defines an Entry + EntryData pair for a discriminator that carries a payload. Used by the codegen; consumers of this crate normally don’t invoke directly.
masterfile_stub_entry
Defines an Entry + EntryData pair for a stub discriminator (no payload). Stub entries have JSON shape { templateId, data: { templateId } }.

Structs§

UnknownTemplateId
Error returned by FromStr impls on generated templateId enums when the input string does not match any known templateId for the group.

Enums§

MasterfileEntry
Every typed entry the Pokémon GO masterfile can hold.

Functions§

parse_masterfile
Parse a masterfile JSON string into a vector of typed entries.

Derive Macros§

AllVariants
Derives pub const ALL: [Self; N] and pub const SIZE: usize for a unit-only enum. Visibility of the constants follows the enum’s own visibility.
AsStr
Derives pub const fn as_str(&self) -> &'static str and impl Display for a unit-only enum. Each variant’s string is taken from a #[serde(rename = "...")] attribute; if absent, falls back to stringify!(VariantIdent).
FromStrEnum
Derives impl FromStr AND impl TryFrom<&str> for a unit-only enum. Both share the same string-matching logic: #[serde(rename = "...")] first, variant ident otherwise. The error type is pogo_masterfile_types::UnknownTemplateId — the macro emits a path reference; consumers must have that type in scope (which they do transparently via the parent crate).
TemplateId
Derives an inherent template_id(&self) -> &str method for an enum whose every variant is a single-field tuple wrapping a struct with a template_id: String field.