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//! * [`actions`], [`events`], [`rules`], [`values`], [`settings`], and
14//!   [`gameplay`] — the discoverable Workshop domains;
15//! * [`program`] — the canonical public Workshop program model;
16//! * [`parser`], [`validate`], [`convert`], [`roundtrip`], and [`emitter`] —
17//!   the public Workshop operations over that model;
18//!
19//! The catalog is locale-independent at the identity layer: analyzer and
20//! APIs never need locale-specific strings to identify a builtin. Locale
21//! coverage is data, declared in the catalog dataset
22//! ([`catalog::Catalog`], [`docs/adr/0001-catalog-boundaries.md`](https://github.com/wrightkit/workshop-rs/blob/main/docs/adr/0001-catalog-boundaries.md)).
23
24pub mod actions;
25mod analysis;
26#[doc(hidden)]
27pub mod arena;
28pub mod catalog;
29pub mod convert;
30mod core;
31pub mod detect;
32#[doc(hidden)]
33pub mod element_count;
34pub mod emitter;
35mod error;
36pub mod events;
37#[doc(hidden)]
38pub mod format;
39mod frontend;
40pub mod gameplay;
41#[doc(hidden)]
42pub mod gameplay_data;
43#[doc(hidden)]
44pub mod gameplay_query;
45#[doc(hidden)]
46pub mod ids;
47#[doc(hidden)]
48pub mod lexer;
49mod output;
50pub mod parser;
51pub mod program;
52pub mod roundtrip;
53pub mod rules;
54#[doc(hidden)]
55pub mod semantic;
56pub mod settings;
57pub mod signatures;
58pub mod source;
59pub mod validate;
60pub mod values;
61#[doc(hidden)]
62pub mod wir;
63
64pub use error::{CatalogError, WorkshopError};
65pub use program::{
66    Action, Condition, Event, EventTarget, EventTeam, ModifyOp, PlayerEventKind, Program, Rule,
67    Subroutine, Value, Variable,
68};