use crate::common::message::UserState;
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
pub enum RpsState {
BeforeRoom,
InRoom,
Played,
Confirmed,
}
impl From<UserState> for RpsState {
fn from(value: UserState) -> Self {
match value {
UserState::InRoom => RpsState::InRoom,
UserState::Played(_) => RpsState::Played,
UserState::Confirmed(_) => RpsState::Confirmed,
}
}
}
pub trait UserMoveMethods {
fn allowed_state(&self) -> RpsState;
fn resulting_state(&self) -> RpsState;
}