mahjong_core/game/
errors.rs1use strum_macros::EnumIter;
2
3#[derive(Debug, PartialEq, Eq, Clone, EnumIter)]
4pub enum DiscardTileError {
5 ClaimedAnotherTile,
6 NoPlayerCanDiscard,
7 PlayerHasNoTile,
8 TileIsExposed,
9 TileIsPartOfMeld,
10}
11
12#[derive(Debug, PartialEq, Eq, Clone, EnumIter)]
13pub enum CreateMeldError {
14 EndRound,
15 NotMeld,
16 TileIsPartOfMeld,
17}
18
19#[derive(Debug, PartialEq, Eq, Clone, EnumIter)]
20pub enum PassNullRoundError {
21 HandCanDropTile,
22 HandCanSayMahjong,
23 WallNotEmpty,
24}
25
26#[derive(Debug, PartialEq, Eq, Clone, EnumIter)]
27pub enum BreakMeldError {
28 MeldIsKong,
29 MissingHand,
30 TileIsExposed,
31}
32
33#[derive(Debug, PartialEq, Eq, Clone, EnumIter)]
34pub enum DecideDealerError {
35 DuplicatedWinds,
36}
37
38#[derive(Debug, PartialEq, Eq, Clone, EnumIter)]
39pub enum DrawError {
40 NotEnoughTiles,
41}
42
43impl Default for DrawError {
44 fn default() -> Self {
45 Self::NotEnoughTiles
46 }
47}