Skip to main content

wowlab_engine_application/
lib.rs

1//! Application-layer use cases for resolving and running `WoW Lab` simulations.
2//!
3//! ```
4//! let stats = wowlab_engine_application::default_stats();
5//! assert!(stats.attack_power > 0.0);
6//! ```
7
8#![expect(
9    clippy::multiple_crate_versions,
10    reason = "the workspace's native, JIT, and wasm feature stacks currently select parallel transitive versions"
11)]
12#![expect(
13    clippy::similar_names,
14    reason = "resolver and resolved are distinct, pervasive domain terms in application-layer resolution pipelines"
15)]
16#![expect(
17    clippy::missing_errors_doc,
18    reason = "public use cases consistently return the crate's documented ApplicationError contract"
19)]
20
21#[cfg(test)]
22#[used]
23static FORCE_LINK_TEST_CONTENT: fn() -> usize = wowlab_engine_content::force_link_generated_specs;
24
25mod audit;
26mod chunk_executor;
27mod conflicts;
28mod encounter;
29mod enemies;
30mod error;
31mod game_data;
32mod gear;
33mod intent_builder;
34mod introspection;
35mod iteration_trace;
36mod paperdoll;
37mod resolved_handler;
38mod rotation_validation;
39mod settings;
40mod simulate_intent;
41mod simulate_parallel;
42mod talents;
43mod weapon;
44
45pub use audit::{AuditIssue, SpecAudit, audit_manifest, audit_manifest_repository};
46pub use chunk_executor::{ChunkRun, run_chunk, run_chunk_into_accumulator};
47pub use conflicts::check_conflicts;
48pub use encounter::EncounterResolutionError;
49pub use enemies::{
50    EnemyStatError, EnemyStatField, EnemyStatInspection, EnemyStatProvenanceStep,
51    EnemyStatResolutionError, EnemyStatResolver, ProvenanceValue, ResolvedCreatureTuning,
52    ResolvedEnemyIdentity, ResolvedEnemyStats,
53};
54pub use error::{ApplicationError, ApplicationErrorCategory, ApplicationStage};
55pub use game_data::{CharacterContext, GameDataInputs, resolve_game_data};
56pub use intent_builder::{IntentBuilder, IntentOverrides, SimRequest};
57pub use introspection::{introspect_spec, introspect_spec_resolved, introspect_spec_with_data};
58pub use iteration_trace::{
59    ActionStat, AuraEvent, DpsSample, IterationTrace, ResourceSample, project_iteration_trace,
60};
61pub use paperdoll::resolve_paperdoll;
62pub use resolved_handler::ResolvedHandler;
63pub use rotation_validation::validate_rotation_for_spec;
64pub use simulate_intent::{
65    ResolvedSetup, assisted_rotation_id, build_handler, build_handler_from_setup,
66    resolve_assisted_rotation_script, resolve_setup, simulate_intent, simulate_intent_request,
67    simulate_intent_with_trace,
68};
69pub use simulate_parallel::{ParallelRun, simulate_intent_parallel};
70pub use wowlab_engine_domain::stats::default_stats;