use riichi_elements::prelude::*;
use super::agari::AgariKind;
#[derive(Copy, Clone, Debug, Default, Eq, Hash, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(tag = "type", content = "details"))]
pub enum ActionResult {
#[default]
Pass,
CalledBy(Player),
Agari(AgariKind),
Abort(AbortReason),
}
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum AbortReason {
NineKinds,
WallExhausted,
NagashiMangan,
FourKan,
FourWind,
FourRiichi,
DoubleRon,
TripleRon,
}