42 lines
1.6 KiB
Rust
42 lines
1.6 KiB
Rust
use std::{error::Error, fmt};
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub enum VisualNovelDomainError {
|
|
MissingProfileId,
|
|
MissingRunId,
|
|
MissingOwnerUserId,
|
|
MissingClientEventId,
|
|
MissingActionText,
|
|
InvalidChoiceId,
|
|
FreeTextDisabled,
|
|
HistoryRegenerationDisabled,
|
|
HistoryEntryNotFound,
|
|
InvalidHistorySource,
|
|
InvalidRuntimeStep,
|
|
InvalidJson,
|
|
EmptyRuntimeSteps,
|
|
}
|
|
|
|
impl fmt::Display for VisualNovelDomainError {
|
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
let message = match self {
|
|
Self::MissingProfileId => "visual novel profile_id 缺失",
|
|
Self::MissingRunId => "visual novel run_id 缺失",
|
|
Self::MissingOwnerUserId => "visual novel owner_user_id 缺失",
|
|
Self::MissingClientEventId => "visual novel client_event_id 缺失",
|
|
Self::MissingActionText => "visual novel 行动文本缺失",
|
|
Self::InvalidChoiceId => "visual novel choice_id 不合法",
|
|
Self::FreeTextDisabled => "visual novel 当前作品未开启自由行动",
|
|
Self::HistoryRegenerationDisabled => "visual novel 当前作品未开启历史重生成",
|
|
Self::HistoryEntryNotFound => "visual novel history entry 不存在",
|
|
Self::InvalidHistorySource => "visual novel 只能从助手历史节点重生成",
|
|
Self::InvalidRuntimeStep => "visual novel runtime step 不合法",
|
|
Self::InvalidJson => "visual novel JSON 解析失败",
|
|
Self::EmptyRuntimeSteps => "visual novel runtime step 不能为空",
|
|
};
|
|
write!(f, "{message}")
|
|
}
|
|
}
|
|
|
|
impl Error for VisualNovelDomainError {}
|