use colored::Colorize; use tokio::sync::broadcast::Receiver; use werewolves_proto::error::GameError; use crate::runner::IdentifiedClientMessage; pub struct PlayerIdComms { message_recv: Receiver, } impl PlayerIdComms { pub fn new(message_recv: Receiver) -> Self { Self { message_recv } } pub async fn recv(&mut self) -> Result { match self .message_recv .recv() .await .map_err(|err| GameError::GenericError(err.to_string())) { Ok(msg) => { log::debug!("got message: {}", format!("{msg:?}").dimmed()); Ok(msg) } Err(err) => Err(err), } } }