38 lines
1.2 KiB
Rust
38 lines
1.2 KiB
Rust
use std::fmt::{self, Display};
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
pub enum SquareHoleError {
|
|
MissingText,
|
|
MissingOwnerUserId,
|
|
InvalidShapeCount,
|
|
InvalidDifficulty,
|
|
MissingProfileId,
|
|
MissingRunId,
|
|
MissingHoleId,
|
|
RunNotActive,
|
|
SnapshotVersionMismatch,
|
|
HoleNotFound,
|
|
Incompatible,
|
|
}
|
|
|
|
impl Display for SquareHoleError {
|
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
let message = match self {
|
|
Self::MissingText => "文本不能为空",
|
|
Self::MissingOwnerUserId => "owner_user_id 缺失",
|
|
Self::InvalidShapeCount => "形状数量必须在 6 到 24 之间",
|
|
Self::InvalidDifficulty => "难度必须在 1 到 10 之间",
|
|
Self::MissingProfileId => "缺少 profileId",
|
|
Self::MissingRunId => "缺少 runId",
|
|
Self::MissingHoleId => "缺少 holeId",
|
|
Self::RunNotActive => "当前运行态未激活",
|
|
Self::SnapshotVersionMismatch => "快照版本不一致",
|
|
Self::HoleNotFound => "洞口不存在",
|
|
Self::Incompatible => "当前形状不能投入这个洞口",
|
|
};
|
|
write!(f, "{message}")
|
|
}
|
|
}
|
|
|
|
impl std::error::Error for SquareHoleError {}
|