Skip to main content

workshop_rs/
lib.rs

1//! The canonical multi-locale Overwatch Workshop semantic core.
2//!
3//! `workshop-rs` owns the Workshop-language foundation of the WrightKit
4//! ecosystem: canonical Workshop semantics, the catalog of Workshop-defined
5//! content, the raw Workshop frontend, validation, deterministic emission,
6//! and the canonical public `Program` model. It is standalone and MIT-licensed; it has no dependency on
7//! Wright tooling crates or on any source-language provider implementation.
8//!
9//! * [`catalog`] — the canonical Workshop catalog: stable, locale-independent
10//!   semantic identities, kinds, parameters, and locale tables binding
11//!   identities to client spellings; catalog version/digest identity and
12//!   per-locale coverage;
13//! * [`mod@format`] — canonical number formatting for computed Workshop values;
14//! * [`lookup`] — canonical name lookup: display names, near spellings, and
15//!   settings paths resolve to the accepted catalog and settings vocabulary;
16//! * [`actions`], [`events`], [`rules`], [`values`], [`settings`], and
17//!   [`gameplay`] — the discoverable Workshop domains;
18//! * [`program`] — the canonical public Workshop program model;
19//! * [`parser`], [`validate`], [`convert`], [`roundtrip`], [`compare`], and
20//!   [`emitter`] — the public Workshop operations over that model;
21//!
22//! The catalog is locale-independent at the identity layer: analyzer and
23//! APIs never need locale-specific strings to identify a builtin. Locale
24//! coverage is data, declared in the catalog dataset
25//! ([`catalog::Catalog`], [`docs/adr/0001-catalog-boundaries.md`](https://github.com/wrightkit/workshop-rs/blob/main/docs/adr/0001-catalog-boundaries.md)).
26
27pub mod actions;
28mod analysis;
29pub mod catalog;
30pub mod compare;
31pub mod convert;
32mod core;
33pub mod detect;
34pub mod emitter;
35mod error;
36pub mod events;
37pub mod format;
38mod frontend;
39pub mod gameplay;
40pub mod lookup;
41mod output;
42pub mod parser;
43pub mod program;
44pub mod roundtrip;
45pub mod rules;
46pub mod settings;
47pub mod signatures;
48pub mod source;
49pub mod validate;
50pub mod values;
51pub(crate) mod wir;
52
53pub use error::{CatalogError, WorkshopError};
54pub use program::{
55    Action, Condition, Event, EventTarget, EventTeam, MappedText, ModifyOp, PlayerEventKind,
56    Program, Rule, SourceMap, SourceMapError, SourceMappingError, Subroutine, Value, Variable,
57};
58
59#[cfg(test)]
60extern crate self as workshop_rs;
61
62#[cfg(test)]
63mod tests;