Expand description
dice-rs — Core library for GoDice BLE dice.
Provides domain types, BLE transport abstraction, and a high-level service API for scanning, connecting, and interacting with GoDice devices over Bluetooth Low Energy.
§Quick Start
use dice_rs::{DiceManager, DiceEvent};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let manager = DiceManager::new().await?;
let devices = manager.scan().await?;
if devices.is_empty() {
println!("No GoDice devices found");
return Ok(());
}
let dice = manager.connect(&devices[0]).await?;
let mut receiver = dice.subscribe();
while let Ok(event) = receiver.recv().await {
match event {
DiceEvent::Stable { face, .. } => println!("Rolled: {face}"),
DiceEvent::RollStart => println!("Rolling..."),
DiceEvent::Disconnected => break,
_ => {}
}
}
Ok(())
}Re-exports§
pub use model::acceleration::Acceleration;pub use model::battery_level::BatteryLevel;pub use model::charging_state::ChargingState;pub use model::dice::DiceColor;pub use model::dice::DiceType;pub use model::face::FaceValue;pub use model::led::LedColor;pub use service::dice::Dice;pub use service::dice::DiceDevice;pub use service::dice::DiceEvent;pub use service::manager::DiceManager;