Skip to main content

rite_model/
lib.rs

1//! Core domain model and IR for the Rite ceremony DSL.
2//!
3//! `rite-model` defines the Intermediate Representation (IR): the fully resolved
4//! ceremony data consumed by the executor. The YAML schema (parser input) lives in
5//! `rite-resolver`; this crate contains only the runtime-facing types.
6//!
7//! # Module structure
8//!
9//! - [`ir`]: IR types: [`Ceremony`], [`Step`], [`Role`], etc. and typed ID newtypes
10//! - [`expression`]: Expression parsing for `${artifact.name | sha256 | hex}` syntax
11//! - `types` (private): Shared semantic enums: [`ActionType`], [`DutyType`], etc.
12//!
13//! # `BackendConfig`
14//!
15//! Re-exported from `rite-sdk` for convenience. The canonical definition lives there.
16
17#![warn(missing_docs)]
18
19pub mod expression;
20pub mod ir;
21mod material;
22pub mod transcript;
23mod types;
24
25pub use rite_sdk::BackendConfig;
26
27pub use material::MaterialSource;
28
29pub use types::{
30    ActionType, DutyType, Metadata, OutputType, ParameterType, derive_role_name, derive_step_name,
31    role_type,
32};
33
34pub use ir::{
35    Act, ActId, ArtifactId, ArtifactRef, Ceremony, Material, MaterialId, MaterialKind, Output,
36    OutputId, ParamId, Parameter, PostCeremonyDuty, Role, RoleId, Section, SectionId, Step, StepId,
37    StepInputs, SymbolTable,
38};