Skip to main content

Module rotation

Module rotation 

Source
Expand description

JSON rotation -> LLVM JIT -> native code (~1.5ns eval).

ModulesΒ§

ast πŸ”’
Rotation parsing and structural validation.
backend πŸ”’
Backend traits for rotation evaluation.
buffer πŸ”’
check πŸ”’
Extracts referenced spell/aura/talent names and checks them against a spec resolver.
compiler πŸ”’
LLVM JIT shell: builds the function prototype and drives the generic lowerer.
condition πŸ”’
Resolution of authored condition fields against a runtime descriptor schema.
context πŸ”’
Runtime context schema for descriptor-based rotations.
decision_trace πŸ”’
engine πŸ”’
Rotation engine enum that dispatches to JIT or interpreter backend.
error πŸ”’
expr πŸ”’
Expression field types and context population.
interp_backend πŸ”’
Interpreter side of the RotationBackend lowering trait.
interpreter πŸ”’
Interpreter shell around the generic lowerer.
jit_backend πŸ”’
JIT side of the RotationBackend lowering trait.
jit_common πŸ”’
Shared types for the LLVM JIT.
lower πŸ”’
Generic rotation lowerer β€” every operation written exactly once.
resolver πŸ”’
Maps spell/aura names to game IDs for rotation parsing.
result πŸ”’
Rotation evaluation result type shared by JIT and interpreter backends.
spec_catalog πŸ”’
Maps spell/aura/talent display names to their IDs.
trace
Human-readable labels for rotation condition trees (debug tracing).
validate πŸ”’
Pre-compilation validation for rotation definitions.

StructsΒ§

ActionEvaluation
Per-action evaluation outcome.
ActionRecord
One action’s outcome, threaded into the backend’s record_action hook.
AuraKey
Collision-free identity for one aura instance.
AuraProjectionKey
Dense-buffer identity for an APL aura category projection.
AuraSlot
BufferOffsets
Maps slot types and keys to their byte offsets within the dense buffer.
ByteOffset
A byte offset into the dense rotation buffer.
CatalogHints
Hints about spell/aura properties that can’t be inferred from name+ID alone.
CheckResult
Outcome of checking referenced names against a spec resolver.
CombatSlot
CompiledRotation
ContextField
One resolved context field and its byte offset.
ContextSchema
Fully resolved runtime context layout.
CooldownSlot
Decision
One decision recorded for a single evaluate() call.
DecisionTrace
Full set of decisions captured during a single evaluate() call.
DecisionTraceTarget
Cloneable trace destination with shared ownership hidden at the port boundary.
DenseBuffer
Flat byte buffer holding all runtime rotation state for zero-allocation evaluation.
DescriptorId
Stable identifier for a super::FieldDescriptor in the super::DescriptorTable: its index.
DescriptorIter
Iterator over descriptor identifiers and definitions.
DescriptorTable
Indexed collection of all FieldDescriptors registered via inventory.
EquipmentSlot
Error
Errors produced while parsing, validating, or compiling a rotation definition.
EvalResult
Decoded form of the JIT’s packed-u64 return value.
FieldDescriptor
Inventory entry describing one expression-readable buffer field.
HeroTreeSlot
HistoryIterMut
Iterator yielding mutable history slots without allocating a key list.
HistorySlot
InterpretedRotation
Interpreter backend (only choice on WASM; fallback on native without jit).
ItemSlot
NameExtractionError
Failure to extract referenced names from a rotation JSON document.
PetSlot
PlayerSlot
ReferencedNames
All spell, aura, and talent names referenced by a parsed rotation.
ResolvedFieldRead
A FieldRead with its descriptor looked up and its key resolved to a typed ID.
ResourceSlot
SetBonusSlot
SlotDescriptor
Inventory entry describing one dense-buffer slot domain.
SlotMaps
SpecCatalog
Display names are converted to snake_case keys for rotation compilation.
SpecResolver
Maps rotation-JSON string names (spells, auras, talents, resources) to their resolved numeric IDs for a single spec.
SpellAuraPolicy
Aura-scoped policy coordinate used while evaluating spell.is_usable.
SpellSlot
StandaloneDefault
Inventory-collected standalone default for a descriptor-based field.
SwingSlot
TalentInfo
Resolved talent state for rotation compilation.
TalentSlot
UnitSlot
ValidationResult
Aggregated outcome of rotation validation.
VarPathCategory
A grouping of variable paths within one descriptor domain.
VarPathInfo
Metadata about a single variable path.
VecSink
In-memory sink used by tests and the WASM bridge.
WeaponImbueSlot

EnumsΒ§

ActionOutcome
Categorical outcome attached to one action by ActionRecord::outcome.
BufferAuraOn
DefaultValue
Typed value for a standalone buffer default.
EvalKind
Operation used to interpret a field from the dense rotation buffer.
EvaluationStatus
Why an action did or did not fire.
FieldType
Primitive value representation stored in a buffer field.
ResolvedKey
Typed slot key for a resolved field read.
ResourceType
RotationEngine
Dispatches rotation evaluation to JIT or interpreter backend.
SlotKind
Whether a slot is a singleton or keyed by spell/aura/resource.
SpellAuraPolicyKind
Behavior activated by an aura for one spell.
ValidationError
Hard validation error.
ValidationWarning
Non-fatal warning.

TraitsΒ§

DecisionTraceSink
Recipient of Decisions emitted by the interpreter backend.
RotationBackend
Lowering trait of primitive ops both rotation backends must support, with bit-identical numeric semantics.
RuntimeBackend
Runtime dispatch trait for evaluating a compiled rotation.

FunctionsΒ§

build_spec_resolver
Builds a name-resolving SpecResolver from a spec’s introspection snapshot and talent names.
check
Partitions each referenced name into supported/missing against resolver.
extract_names
Parses json as a Rotation and collects every referenced name.
extract_names_from_rotation
Walks a parsed Rotation and collects every referenced name.
get_var_path_schema
Variable path schema generated from the descriptor table.
parse_and_validate
Parse a JSON string into a Rotation and validate it.
to_simc_key
Converts a display name to its normalized identifier token.
validate_rotation
Runs all structural checks on a parsed Rotation.

Type AliasesΒ§

Result
Shorthand for std::result::Result parameterised with this module’s Error.