1pub mod ble;
38pub mod error;
39pub mod model;
40pub mod service;
41
42pub use model::acceleration::Acceleration;
43pub use model::battery_level::BatteryLevel;
44pub use model::charging_state::ChargingState;
45pub use model::dice::DiceColor;
46pub use model::dice::DiceType;
47pub use model::face::FaceValue;
48pub use model::led::LedColor;
49pub use service::dice::Dice;
50pub use service::dice::DiceDevice;
51pub use service::dice::DiceEvent;
52pub use service::manager::DiceManager;
53
54#[cfg(test)]
55mod tests {
56 #[test]
57 fn book_summary_has_all_chapters() {
58 let summary = include_str!("../../book/src/SUMMARY.md");
59 assert!(summary.contains("Introduction"));
60 assert!(summary.contains("Getting Started"));
61 assert!(summary.contains("Architecture"));
62 assert!(summary.contains("BLE Protocol"));
63 assert!(summary.contains("Scanning & Connecting"));
64 assert!(summary.contains("Dice Events"));
65 assert!(summary.contains("LED Control"));
66 assert!(summary.contains("Battery & Status"));
67 assert!(summary.contains("Calibration"));
68 assert!(summary.contains("CLI Tool"));
69 assert!(summary.contains("Controller"));
70 assert!(summary.contains("WebSocket Server"));
71 assert!(summary.contains("Platform Notes"));
72 }
73
74 #[test]
75 fn changelog_has_unreleased_section() {
76 let changelog = include_str!("../../CHANGELOG.md");
77 assert!(changelog.contains("## Unreleased"));
78 assert!(changelog.contains("### Added"));
79 assert!(changelog.contains("### Changed"));
80 assert!(changelog.contains("### Fixed"));
81 }
82}