Skip to main content

syntax_workout_core/
lib.rs

1pub mod node;
2pub mod measure;
3pub mod intensity;
4pub mod execution_mode;
5pub mod workout;
6pub mod visit;
7pub mod fold;
8pub mod validate;
9pub mod builder;
10pub mod stats;
11
12pub use node::{Node, NodeId, NodeKind, NodePayload};
13pub use measure::{Measure, WeightUnit, DistanceUnit};
14pub use intensity::Intensity;
15pub use execution_mode::ExecutionMode;
16pub use workout::Workout;
17pub use visit::{Visit, walk_node};
18pub use fold::Fold;
19pub use validate::validate;
20
21#[cfg(test)]
22mod ts_export_tests {
23    use ts_rs::TS;
24
25    /// Verify all public types implement TS and produce valid TypeScript declarations.
26    #[test]
27    fn all_public_types_export() {
28        let cfg = ts_rs::Config::default();
29        assert!(!super::Node::decl(&cfg).is_empty());
30        assert!(!super::NodeId::decl(&cfg).is_empty());
31        assert!(!super::NodeKind::decl(&cfg).is_empty());
32        assert!(!super::NodePayload::decl(&cfg).is_empty());
33        assert!(!super::Measure::decl(&cfg).is_empty());
34        assert!(!super::WeightUnit::decl(&cfg).is_empty());
35        assert!(!super::DistanceUnit::decl(&cfg).is_empty());
36        assert!(!super::Intensity::decl(&cfg).is_empty());
37        assert!(!super::ExecutionMode::decl(&cfg).is_empty());
38        assert!(!super::Workout::decl(&cfg).is_empty());
39        assert!(!super::validate::ValidationError::decl(&cfg).is_empty());
40    }
41}