zero-trust-rps 0.0.4

Online Multiplayer Rock Paper Scissors
Documentation
use crate::common::message::{RoomId, RpsData};

use super::state::RpsState;

#[derive(Clone, Copy, Debug)]
pub enum SimpleUserMove {
    JoinRoom(RoomId),
    Play(RpsData),
    ConfirmPlay,
    BackToRoom,
}

impl SimpleUserMove {
    pub fn allowed_state(&self) -> RpsState {
        match self {
            SimpleUserMove::JoinRoom(_) => RpsState::BeforeRoom,
            SimpleUserMove::Play(_) => RpsState::InRoom,
            SimpleUserMove::ConfirmPlay => RpsState::Played,
            SimpleUserMove::BackToRoom => RpsState::Confirmed,
        }
    }
}