werewolves/werewolves-server/src/communication/player.rs

31 lines
798 B
Rust
Raw Normal View History

use colored::Colorize;
use tokio::sync::broadcast::Receiver;
2025-10-03 00:00:39 +01:00
use werewolves_proto::error::GameError;
2025-10-03 00:00:39 +01:00
use crate::runner::IdentifiedClientMessage;
pub struct PlayerIdComms {
message_recv: Receiver<IdentifiedClientMessage>,
}
impl PlayerIdComms {
pub fn new(message_recv: Receiver<IdentifiedClientMessage>) -> Self {
Self { message_recv }
}
pub async fn recv(&mut self) -> Result<IdentifiedClientMessage, GameError> {
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),
}
}
}