gestura_core_ring/
lib.rs

1use async_trait::async_trait;
2
3pub use gestura_core_gestures::Gesture;
4
5pub use gestura_core_haptics::HapticPattern;
6
7pub use gestura_core_devices::DeviceStatus;
8
9#[async_trait]
10pub trait RingBackend: Send + Sync {
11    async fn connect(&self) -> Result<(), String>;
12    async fn subscribe_to_gestures(&self) -> tokio::sync::broadcast::Receiver<Gesture>;
13    async fn send_haptic(&self, pattern: HapticPattern, intensity: f32, duration_ms: u32);
14    async fn get_status(&self) -> DeviceStatus;
15}
16
17pub mod backends;
18
19pub use backends::simulator::SimulatorBackend;