diff options
| author | Jomar Milan <jomarm@jomarm.com> | 2026-06-10 14:59:07 -0700 |
|---|---|---|
| committer | Jomar Milan <jomarm@jomarm.com> | 2026-06-10 14:59:07 -0700 |
| commit | 067e9602ba4feccf947a138c9e73462c446268bc (patch) | |
| tree | 7f9320d3d6bbe735d1bee519109c24661353eabd /src/session.rs | |
| parent | 13374b7928788e8cdc6c7905209bafdf943dc02e (diff) | |
Add syncing of player hand updates to browsers
Diffstat (limited to 'src/session.rs')
| -rw-r--r-- | src/session.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/session.rs b/src/session.rs index acd7615..4797c5c 100644 --- a/src/session.rs +++ b/src/session.rs @@ -1,19 +1,21 @@ use serde::{Deserialize, Serialize}; use std::collections::HashMap; +use tokio::sync::broadcast; pub struct Session { pub steam_name: String, pub seats: HashMap<String, Seat>, + pub update_tx: broadcast::Sender<PlayUpdate>, } -#[derive(Clone, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] pub enum HandObject { CustomDeck(CustomDeck), } // TODO: These fields will be used in the future. When they are, the dead_code lint should no longer // be suppressed. -#[derive(Clone, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] #[allow(dead_code)] pub struct CustomDeck { /// The path/URL of the face cardsheet. @@ -41,11 +43,19 @@ pub struct Seat { pub hand: Vec<HandObject>, } +#[derive(Clone)] +pub enum PlayUpdate { + HandUpdate(String, Vec<HandObject>), +} + impl Session { pub fn new(steam_name: String) -> Self { + let (update_tx, _) = broadcast::channel(10); + Session { steam_name, seats: HashMap::new(), + update_tx, } } } |
