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:
Entry(e.g.pokemon_settings::PokemonSettingsEntry): the outer JSON shape,{ templateId, data: { ... } }.EntryData(e.g.pokemon_settings::PokemonSettingsEntryData): the innerdataobject, with the discriminator-keyed payload field.- The payload type (e.g.
pokemon_settings::PokemonSettings): the shape of the payload itself. For multi-shape groups this is a Rust enum dispatching to per-cluster variant structs.
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§
- Unknown
Template Id - Error returned by
FromStrimpls on generated templateId enums when the input string does not match any known templateId for the group.
Enums§
- Masterfile
Entry - 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]andpub const SIZE: usizefor a unit-only enum. Visibility of the constants follows the enum’s own visibility. - AsStr
- Derives
pub const fn as_str(&self) -> &'static strandimpl Displayfor a unit-only enum. Each variant’s string is taken from a#[serde(rename = "...")]attribute; if absent, falls back tostringify!(VariantIdent). - From
StrEnum - Derives
impl FromStrANDimpl TryFrom<&str>for a unit-only enum. Both share the same string-matching logic:#[serde(rename = "...")]first, variant ident otherwise. The error type ispogo_masterfile_types::UnknownTemplateId— the macro emits a path reference; consumers must have that type in scope (which they do transparently via the parent crate). - Template
Id - Derives an inherent
template_id(&self) -> &strmethod for an enum whose every variant is a single-field tuple wrapping a struct with atemplate_id: Stringfield.