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§
- Access
Control - Set of access rules controlling who can view a resource.
- Character
- Character information.
- Content
Tuning Row - DBC row from ContentTuning.db2: expansion, level bounds, and scaling-curve IDs.
- Content
TuningX Difficulty Row - DBC row from ContentTuningXDifficulty.db2: content tuning to difficulty mapping.
- Content
TuningX Expected Row - DBC row from ContentTuningXExpected.db2: content tuning to expected-stat-mod mapping with Mythic+ season bounds.
- Creature
Difficulty Row - DBC row from CreatureDifficulty.db2: per-creature content-tuning variant.
- Creature
Row - DBC row from Creature.db2: NPC identity and classification metadata.
- Cross
Spell Effect Copy - One percentage a description states as another spell’s stored effect value, divided down.
- Crypto
Error - 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.
- Effect
Precision Scale - One effect value the description renders at reduced magnitude.
- Expected
Stat ModRow - DBC row from ExpectedStatMod.db2: multiplier overrides for expected stat budgets.
- Game
Data Resolver - Resolves a spell description against a fully resolved character bundle.
- Game
Table - A parsed
GameTableas a raw string grid. - Item
- A parsed equipment item.
- Loadout
- Saved talent loadout.
- Node
Keypair - Ed25519 signing keypair used by nodes to authenticate with the control plane.
- Null
Resolver - A no-op resolver that returns
None/false/truefor everything. - Parse
Access Error - Errors produced while parsing an
AccessControlexpression. - Parsed
Spell Description - A fully parsed spell description.
- Profession
- Profession with skill rank.
- Profile
- A fully parsed
SimCprofile. - Rotation
Overlay Error - Failure applying a rotation overlay patch.
- Simc
Parse Error - Errors produced while parsing a
SimulationCraftprofile. - Spec
Conditional Effects - One
$?cN[$sI][$sJ]statement: which effect each specialization reads. - Spell
Desc Parse Result - Result of parsing a spell description.
- Spell
Knowledge Context - 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.
- Test
Resolver - Token
Stream - Cursor over a slice of tokens with peek/advance semantics.
- Transform
Error - Errors produced while transforming raw DBC rows into flat types.
- Wasm
Analyze Result - WASM-exposed result of analyzing a spell description: dependencies + parse errors.
Enums§
- Access
Rule - A single access-control grant (public, Discord guild, or friend list).
- Crypto
Input - Encoded input that failed a node-authentication crypto operation.
- Spell
Description Node - Top-level node in a spell description.
- Variable
Node - Any variable reference in a spell description.
- WowClass
WoWclass identifiers.
Constants§
- MIDNIGHT_
EXPANSION_ ID - OMNIUM_
SYSTEM - OMNIUM_
TRAIT_ TREE_ ID - Midnight’s class-agnostic Omnium Folio tree (
TraitTree.ID = 1186).
Traits§
- Effect
Value Resolver - Resolves effect-level values, spell-level values, and custom variables.
- Player
State Resolver - Resolves player state: stats, gender, specialization, known spells, active auras.
- Spell
Desc Resolver - Composite trait auto-implemented for any type implementing all three resolver sub-traits.
- Spell
Text Resolver - Resolves recursive spell text embedding (description, name, icon).
Functions§
- analyze_
spell_ desc_ dependencies - Extract render dependencies;
self_spell_idresolves self-references like$s2. - apply_
rotation_ overlay - Apply the tracked overlay for
spec_slugto 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
ItemBonustype 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
WoWinventory_typeto theRandPropPointsstat-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
SimCprofile string into structured data. - parse_
spell_ desc - Parse a spell description string into a typed AST.
- render_
global_ string - Render a raw
WoWglobal-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
weaponfield 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
ArmorLocationrow in the DBC dataset intoArmorLocationFlatrecords. - transform_
all_ challenge_ mode_ item_ bonus_ overrides - 1:1 transform of
ChallengeModeItemBonusOverriderows. - transform_
all_ classes - Transform every
ChrClassesrow into flat class records. - transform_
all_ content_ tuning_ x_ difficulty - Flatten every
ContentTuningXDifficultyrow in the DBC dataset intoContentTuningXDifficultyFlatrecords. - transform_
all_ content_ tuning_ x_ expected - Flatten every
ContentTuningXExpectedrow in the DBC dataset intoContentTuningXExpectedFlatrecords. - transform_
all_ content_ tunings - Flatten every
ContentTuningrow in the DBC dataset intoContentTuningFlatrecords. - transform_
all_ cooldown_ sets - Join
CooldownSetwithCooldownSetSpell. - transform_
all_ crafted_ products - Build crafted-product rows, emitting one per quality variant.
- transform_
all_ creature_ difficulties - Flatten every
CreatureDifficultyrow in the DBC dataset intoCreatureDifficultyFlatrecords. - transform_
all_ creatures - Flatten every
Creaturerow in the DBC dataset intoCreatureFlatrecords. - transform_
all_ currencies - 1:1 transform of
CurrencyTypesrows joined withCurrencyCategory.Name_lang. - transform_
all_ currency_ categories - 1:1 transform of
CurrencyCategoryrows. - transform_
all_ curve_ points - Flatten every
CurvePointrow in the DBC dataset intoCurvePointFlatrecords. - transform_
all_ curves - Flatten every
Curverow in the DBC dataset intoCurveFlatrecords. - transform_
all_ delves_ seasons - 1:1 transform of
DelvesSeasonrows. - transform_
all_ difficulties - 1:1 transform of
Difficultyrows + derivedkind. - transform_
all_ enchantments - Flatten every
SpellItemEnchantmentrow in the DBC dataset intoEnchantmentFlatrecords. - transform_
all_ expansion_ trait_ trees - Transform every expansion-owned tree supported by this client-data snapshot.
- transform_
all_ expected_ stat_ mods - Flatten every
ExpectedStatModrow in the DBC dataset intoExpectedStatModFlatrecords. - transform_
all_ expected_ stats - Flatten every
ExpectedStatrow in the DBC dataset intoExpectedStatFlatrecords. - transform_
all_ gem_ properties - Flatten every
GemPropertiesrow in the DBC dataset intoGemPropertiesFlatrecords. - transform_
all_ global_ colors - Transform every
GlobalColorrow into flat records. - transform_
all_ global_ strings - Transform every
GlobalStringsrow into flat records. - transform_
all_ item_ armor_ quality - Flatten every
ItemArmorQualityrow in the DBC dataset intoItemArmorQualityFlatrecords. - transform_
all_ item_ armor_ shield - Flatten every
ItemArmorShieldrow in the DBC dataset intoItemArmorShieldFlatrecords. - transform_
all_ item_ armor_ total - Flatten every
ItemArmorTotalrow in the DBC dataset intoItemArmorTotalFlatrecords. - transform_
all_ item_ bonus_ list_ groups - 1:1 transform of
ItemBonusListGrouprows. - transform_
all_ item_ bonus_ sequence_ spells - 1:1 transform of
ItemBonusSequenceSpellrows. - transform_
all_ item_ bonuses - Flatten every
ItemBonusrow in the DBC dataset intoItemBonusFlatrecords. - transform_
all_ item_ conversions - Walk every
ItemConversionrow, attach embedded child item IDs fromItemConversionEntry, 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
BonusIDsper journal-dropped item, one row per(item_id, source_kind, difficulty_key). - transform_
all_ item_ group_ ilvl_ scaling_ entries - 1:1 transform of
ItemGroupIlvlScalingEntryrows. - transform_
all_ item_ level_ selector_ qualities - 1:1 transform of
ItemLevelSelectorQualityrows. - transform_
all_ item_ level_ selector_ quality_ sets - 1:1 transform of
ItemLevelSelectorQualitySetrows. - transform_
all_ item_ level_ selectors - 1:1 transform of
ItemLevelSelectorrows. - transform_
all_ item_ offset_ curves - Flatten every
ItemOffsetCurverow in the DBC dataset intoItemOffsetCurveFlatrecords. - transform_
all_ item_ scaling_ configs - Flatten every
ItemScalingConfigrow in the DBC dataset intoItemScalingConfigFlatrecords. - transform_
all_ item_ squish_ eras - Flatten every
ItemSquishErarow in the DBC dataset intoItemSquishEraFlatrecords. - transform_
all_ items - Transform every item row into flat
ItemDataFlatrecords. - transform_
all_ journal_ instances - Build
JournalInstanceFlatrows for every raid/dungeon journal instance. - transform_
all_ journal_ tiers - Build the single-row
JournalTierFlatlist for the curated current-season tier. - transform_
all_ mythic_ plus_ seasons - Build the single-row
MythicPlusSeasonFlatlist 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
PowerTyperow in the DBC dataset intoPowerTypeFlatrecords. - transform_
all_ professions - 1:1 transform of
Professionrows + name lookup. - transform_
all_ pvp_ seasons - Build the single-row
PvpSeasonFlatlist for the currentPvPseason. - transform_
all_ pvp_ tiers - 1:1 transform of
PvpTierrows. - transform_
all_ racial_ spells - Expand every racial skill-line ability into one
RacialSpellFlatper race that learns it. - transform_
all_ rand_ prop_ points - Flatten every
RandPropPointsrow in the DBC dataset intoRandPropPointsFlatrecords. - transform_
all_ specialization_ spells - Flatten every
SpecializationSpellsrow in the DBC dataset intoSpecializationSpellFlatrecords. - transform_
all_ specs - Transform every
ChrSpecializationrow in the DBC dataset intoSpecDataFlatrecords. - 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
ChrClassesrow into a flat class record. - transform_
combat_ ratings - transform_
combat_ ratings_ mult_ by_ ilvl - transform_
global_ color - Transform a single
GlobalColorrow into a flat record. - transform_
global_ string - Transform a single
GlobalStringsrow 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
ChrSpecializationrow into a flatSpecDataFlat(with class name and icon resolved). - transform_
spell - Build a fully-resolved
SpellDataFlatforspell_idby 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.