zero_trust_rps/common/rps/
state.rs1use crate::common::message::UserState;
2
3#[derive(Debug, PartialEq, Eq, Clone, Copy)]
4pub enum RpsState {
5 BeforeRoom,
6 InRoom,
7 Played,
8 Confirmed,
9}
10
11impl From<UserState> for RpsState {
12 fn from(value: UserState) -> Self {
13 match value {
14 UserState::InRoom => RpsState::InRoom,
15 UserState::Played(_) => RpsState::Played,
16 UserState::Confirmed(_) => RpsState::Confirmed,
17 }
18 }
19}
20
21pub trait UserMoveMethods {
22 fn allowed_state(&self) -> RpsState;
23
24 fn resulting_state(&self) -> RpsState;
25}