38 lines
1.3 KiB
Rust
38 lines
1.3 KiB
Rust
use std::fmt;
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub enum PuzzleClearError {
|
|
MissingRunId,
|
|
MissingOwnerUserId,
|
|
MissingProfileId,
|
|
InvalidLevel,
|
|
InvalidBoard,
|
|
InvalidPosition,
|
|
EmptyDeck,
|
|
NoPlayableMove,
|
|
RunNotPlaying,
|
|
LevelExpired,
|
|
MissingCard,
|
|
}
|
|
|
|
impl fmt::Display for PuzzleClearError {
|
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
let message = match self {
|
|
Self::MissingRunId => "puzzle-clear run_id 不能为空",
|
|
Self::MissingOwnerUserId => "puzzle-clear owner_user_id 不能为空",
|
|
Self::MissingProfileId => "puzzle-clear profile_id 不能为空",
|
|
Self::InvalidLevel => "puzzle-clear 关卡配置无效",
|
|
Self::InvalidBoard => "puzzle-clear 棋盘状态无效",
|
|
Self::InvalidPosition => "puzzle-clear 坐标无效",
|
|
Self::EmptyDeck => "puzzle-clear 发牌池为空",
|
|
Self::NoPlayableMove => "puzzle-clear 棋盘没有可解拼接",
|
|
Self::RunNotPlaying => "puzzle-clear 当前 run 不在 playing 状态",
|
|
Self::LevelExpired => "puzzle-clear 当前关卡已经超时",
|
|
Self::MissingCard => "puzzle-clear 目标格子没有卡牌",
|
|
};
|
|
f.write_str(message)
|
|
}
|
|
}
|
|
|
|
impl std::error::Error for PuzzleClearError {}
|