Skip to main content

Crate wowlab_parsers

Crate wowlab_parsers 

Source
Expand description

Parsers and data transforms used across WoW Lab.

use wowlab_parsers::parse_csv_list;

assert_eq!(
    parse_csv_list("  haste, mastery ,, crit  "),
    ["haste", "mastery", "crit"]
);

Modules§

parcel
LibParcel-1.0 wire-format codec; Rust counterpart of the pure-Lua packages/LibParcel-1.0/.
parsers đź”’

Structs§

AccessControl
Set of access rules controlling who can view a resource.
Character
Character information.
ContentTuningRow
DBC row from ContentTuning.db2: expansion, level bounds, and scaling-curve IDs.
ContentTuningXDifficultyRow
DBC row from ContentTuningXDifficulty.db2: content tuning to difficulty mapping.
ContentTuningXExpectedRow
DBC row from ContentTuningXExpected.db2: content tuning to expected-stat-mod mapping with Mythic+ season bounds.
CreatureDifficultyRow
DBC row from CreatureDifficulty.db2: per-creature content-tuning variant.
CreatureRow
DBC row from Creature.db2: NPC identity and classification metadata.
CrossSpellEffectCopy
One percentage a description states as another spell’s stored effect value, divided down.
CryptoError
Errors produced by the node-authentication crypto helpers.
DbcData
Container for all loaded DBC data with indexed lookups.
DbcError
Errors produced while loading or parsing DBC CSV files.
EffectPrecisionScale
One effect value the description renders at reduced magnitude.
ExpectedStatModRow
DBC row from ExpectedStatMod.db2: multiplier overrides for expected stat budgets.
GameDataResolver
Resolves a spell description against a fully resolved character bundle.
GameTable
A parsed GameTable as a raw string grid.
Item
A parsed equipment item.
Loadout
Saved talent loadout.
NodeKeypair
Ed25519 signing keypair used by nodes to authenticate with the control plane.
NullResolver
A no-op resolver that returns None/false/true for everything.
ParseAccessError
Errors produced while parsing an AccessControl expression.
ParsedSpellDescription
A fully parsed spell description.
Profession
Profession with skill rank.
Profile
A fully parsed SimC profile.
RotationOverlayError
Failure applying a rotation overlay patch.
SimcParseError
Errors produced while parsing a SimulationCraft profile.
SpecConditionalEffects
One $?cN[$sI][$sJ] statement: which effect each specialization reads.
SpellDescParseResult
Result of parsing a spell description.
SpellKnowledgeContext
Optional class- and spec-scoped knowledge used to enrich a spell with class/spec/talent linkage during transformation.
Talents
Parsed talents section: raw encoded string + decoded loadouts.
TestResolver
TokenStream
Cursor over a slice of tokens with peek/advance semantics.
TransformError
Errors produced while transforming raw DBC rows into flat types.
WasmAnalyzeResult
WASM-exposed result of analyzing a spell description: dependencies + parse errors.

Enums§

AccessRule
A single access-control grant (public, Discord guild, or friend list).
CryptoInput
Encoded input that failed a node-authentication crypto operation.
SpellDescriptionNode
Top-level node in a spell description.
VariableNode
Any variable reference in a spell description.
WowClass
WoW class identifiers.

Constants§

MIDNIGHT_EXPANSION_ID
OMNIUM_SYSTEM
OMNIUM_TRAIT_TREE_ID
Midnight’s class-agnostic Omnium Folio tree (TraitTree.ID = 1186).

Traits§

EffectValueResolver
Resolves effect-level values, spell-level values, and custom variables.
PlayerStateResolver
Resolves player state: stats, gender, specialization, known spells, active auras.
SpellDescResolver
Composite trait auto-implemented for any type implementing all three resolver sub-traits.
SpellTextResolver
Resolves recursive spell text embedding (description, name, icon).

Functions§

analyze_spell_desc_dependencies
Extract render dependencies; self_spell_id resolves self-references like $s2.
apply_rotation_overlay
Apply the tracked overlay for spec_slug to a generated rotation.
assisted_spell_overrides
Resolve specialization placeholders used by a spec’s assisted-combat rotation.
build_sign_message
Build the message to sign for a node request.
get_bonus_description
Return a human-readable description for an ItemBonus type id.
get_stat_budget
Get the stat budget for an item level and quality (stat_value = stat_alloc * budget * 0.0001).
get_stat_name
Return a human-readable name for a raw stat id.
interpolate_curve
Interpolate a piecewise-linear curve at x; values outside the range clamp to the nearest endpoint.
inventory_type_to_slot_index
Map WoW inventory_type to the RandPropPoints stat-budget column index (0-4).
keypair_from_base64
Build a keypair from a base64-encoded private key.
parse_access_control
Parse an access-control expression into an AccessControl.
parse_csv_list
Parse a comma-separated string into a list of trimmed, non-empty strings.
parse_simc
Parse a SimC profile string into structured data.
parse_spell_desc
Parse a spell description string into a typed AST.
render_global_string
Render a raw WoW global-string value to plain display text without spell data.
render_spell_desc
Render a parsed spell description to structured fragments.
resolve_item
Resolve an item’s full effective state from its bonus IDs (the weapon field is left for the sim).
sha256_hex
Compute SHA256 hash of data and return as hex string.
spell_desc_crit_chance_scaled_effect_index
Reads the effect index whose value is a percentage of the caster’s own critical strike chance.
spell_desc_cross_spell_precision_copies
Reads the percentages a description states as another spell’s effect value, in prose order.
spell_desc_effect_precision_scales
Reads the decimal precision a description states for its own effect base values.
spell_desc_precision_rendered_effect_indexes
Reads the spell’s own effect indexes an aura description renders as percentages, in prose order.
spell_desc_spec_conditional_effects
Reads the effect pairs a description selects between by specialization.
transform_all_armor_location
Flatten every ArmorLocation row in the DBC dataset into ArmorLocationFlat records.
transform_all_challenge_mode_item_bonus_overrides
1:1 transform of ChallengeModeItemBonusOverride rows.
transform_all_classes
Transform every ChrClasses row into flat class records.
transform_all_content_tuning_x_difficulty
Flatten every ContentTuningXDifficulty row in the DBC dataset into ContentTuningXDifficultyFlat records.
transform_all_content_tuning_x_expected
Flatten every ContentTuningXExpected row in the DBC dataset into ContentTuningXExpectedFlat records.
transform_all_content_tunings
Flatten every ContentTuning row in the DBC dataset into ContentTuningFlat records.
transform_all_cooldown_sets
Join CooldownSet with CooldownSetSpell.
transform_all_crafted_products
Build crafted-product rows, emitting one per quality variant.
transform_all_creature_difficulties
Flatten every CreatureDifficulty row in the DBC dataset into CreatureDifficultyFlat records.
transform_all_creatures
Flatten every Creature row in the DBC dataset into CreatureFlat records.
transform_all_currencies
1:1 transform of CurrencyTypes rows joined with CurrencyCategory.Name_lang.
transform_all_currency_categories
1:1 transform of CurrencyCategory rows.
transform_all_curve_points
Flatten every CurvePoint row in the DBC dataset into CurvePointFlat records.
transform_all_curves
Flatten every Curve row in the DBC dataset into CurveFlat records.
transform_all_delves_seasons
1:1 transform of DelvesSeason rows.
transform_all_difficulties
1:1 transform of Difficulty rows + derived kind.
transform_all_enchantments
Flatten every SpellItemEnchantment row in the DBC dataset into EnchantmentFlat records.
transform_all_expansion_trait_trees
Transform every expansion-owned tree supported by this client-data snapshot.
transform_all_expected_stat_mods
Flatten every ExpectedStatMod row in the DBC dataset into ExpectedStatModFlat records.
transform_all_expected_stats
Flatten every ExpectedStat row in the DBC dataset into ExpectedStatFlat records.
transform_all_gem_properties
Flatten every GemProperties row in the DBC dataset into GemPropertiesFlat records.
transform_all_global_colors
Transform every GlobalColor row into flat records.
transform_all_global_strings
Transform every GlobalStrings row into flat records.
transform_all_item_armor_quality
Flatten every ItemArmorQuality row in the DBC dataset into ItemArmorQualityFlat records.
transform_all_item_armor_shield
Flatten every ItemArmorShield row in the DBC dataset into ItemArmorShieldFlat records.
transform_all_item_armor_total
Flatten every ItemArmorTotal row in the DBC dataset into ItemArmorTotalFlat records.
transform_all_item_bonus_list_groups
1:1 transform of ItemBonusListGroup rows.
transform_all_item_bonus_sequence_spells
1:1 transform of ItemBonusSequenceSpell rows.
transform_all_item_bonuses
Flatten every ItemBonus row in the DBC dataset into ItemBonusFlat records.
transform_all_item_conversions
Walk every ItemConversion row, attach embedded child item IDs from ItemConversionEntry, and skip parents with no entries.
transform_all_item_damage_scaling
Merge the OneHand/TwoHand/Ammo/caster damage tables, offsetting IDs by 100k per weapon type to avoid collisions.
transform_all_item_drop_scaling
Resolve per-difficulty Upgrade/Flair BonusIDs per journal-dropped item, one row per (item_id, source_kind, difficulty_key).
transform_all_item_group_ilvl_scaling_entries
1:1 transform of ItemGroupIlvlScalingEntry rows.
transform_all_item_level_selector_qualities
1:1 transform of ItemLevelSelectorQuality rows.
transform_all_item_level_selector_quality_sets
1:1 transform of ItemLevelSelectorQualitySet rows.
transform_all_item_level_selectors
1:1 transform of ItemLevelSelector rows.
transform_all_item_offset_curves
Flatten every ItemOffsetCurve row in the DBC dataset into ItemOffsetCurveFlat records.
transform_all_item_scaling_configs
Flatten every ItemScalingConfig row in the DBC dataset into ItemScalingConfigFlat records.
transform_all_item_squish_eras
Flatten every ItemSquishEra row in the DBC dataset into ItemSquishEraFlat records.
transform_all_items
Transform every item row into flat ItemDataFlat records.
transform_all_journal_instances
Build JournalInstanceFlat rows for every raid/dungeon journal instance.
transform_all_journal_tiers
Build the single-row JournalTierFlat list for the curated current-season tier.
transform_all_mythic_plus_seasons
Build the single-row MythicPlusSeasonFlat list for the current M+ season.
transform_all_permanent_enchants
Build SimC’s permanent-enchant index from profession spells and their recipe outputs.
transform_all_power_types
Flatten every PowerType row in the DBC dataset into PowerTypeFlat records.
transform_all_professions
1:1 transform of Profession rows + name lookup.
transform_all_pvp_seasons
Build the single-row PvpSeasonFlat list for the current PvP season.
transform_all_pvp_tiers
1:1 transform of PvpTier rows.
transform_all_racial_spells
Expand every racial skill-line ability into one RacialSpellFlat per race that learns it.
transform_all_rand_prop_points
Flatten every RandPropPoints row in the DBC dataset into RandPropPointsFlat records.
transform_all_specialization_spells
Flatten every SpecializationSpells row in the DBC dataset into SpecializationSpellFlat records.
transform_all_specs
Transform every ChrSpecialization row in the DBC dataset into SpecDataFlat records.
transform_all_spells
Transform every row in the spell DBC into flat spell records.
transform_all_trait_trees
Transform every spec row into its complete flat trait tree.
transform_armor_mitigation_by_lvl
transform_assisted_rotation
Build the flat assisted rotation for a single spec.
transform_assisted_rotations
Rebuild flat assisted rotations for every spec.
transform_base_mp
transform_base_profession_ratings
transform_challenge_mode_damage
transform_challenge_mode_health
transform_class
Transform a single ChrClasses row into a flat class record.
transform_combat_ratings
transform_combat_ratings_mult_by_ilvl
transform_global_color
Transform a single GlobalColor row into a flat record.
transform_global_string
Transform a single GlobalStrings row into a flat localized string record.
transform_hp_per_sta
transform_item
Assemble a flat item record from the Item, ItemSparse, set, source, and appearance DBC tables.
transform_item_socket_cost_per_level
transform_npc_damage_by_class
transform_npc_total_hp
transform_profession_ratings
transform_spec
Convert a single ChrSpecialization row into a flat SpecDataFlat (with class name and icon resolved).
transform_spell
Build a fully-resolved SpellDataFlat for spell_id by joining 20+ DBC tables and applying optional class/spec context.
transform_spell_scaling
transform_stamina_mult_by_ilvl
transform_trait_tree
Transform a specialization into its complete talent tree structure.
verify_signature
Verify a signature against a public key.
verify_signature_base64
Verify a signature using base64-encoded inputs.
wasm_analyze_spell_desc
Analyze a spell description and return its data dependencies.
wasm_render_spell_desc_with_data
Render a spell description against a resolved character bundle into structured fragments.
wasm_tokenize_spell_desc
Tokenize a spell description into fragments for debug display.