From 067e9602ba4feccf947a138c9e73462c446268bc Mon Sep 17 00:00:00 2001 From: Jomar Milan Date: Wed, 10 Jun 2026 14:59:07 -0700 Subject: Add syncing of player hand updates to browsers --- src/session.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/session.rs') 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, + pub update_tx: broadcast::Sender, } -#[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, } +#[derive(Clone)] +pub enum PlayUpdate { + HandUpdate(String, Vec), +} + impl Session { pub fn new(steam_name: String) -> Self { + let (update_tx, _) = broadcast::channel(10); + Session { steam_name, seats: HashMap::new(), + update_tx, } } } -- cgit v1.2.3