Files
Genarrative/server-rs/crates/module-story/src/errors.rs

37 lines
1.4 KiB
Rust

//! 剧情领域错误。
//!
//! 错误保持纯 story session 规则语义,例如会话字段缺失、事件内容为空或版本非法。
use std::{error::Error, fmt};
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum StorySessionFieldError {
MissingSessionId,
MissingRuntimeSessionId,
MissingActorUserId,
MissingWorldProfileId,
MissingInitialPrompt,
MissingNarrativeText,
MissingEventId,
InvalidVersion,
}
impl fmt::Display for StorySessionFieldError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::MissingSessionId => f.write_str("story_session.story_session_id 不能为空"),
Self::MissingRuntimeSessionId => {
f.write_str("story_session.runtime_session_id 不能为空")
}
Self::MissingActorUserId => f.write_str("story_session.actor_user_id 不能为空"),
Self::MissingWorldProfileId => f.write_str("story_session.world_profile_id 不能为空"),
Self::MissingInitialPrompt => f.write_str("story_session.initial_prompt 不能为空"),
Self::MissingNarrativeText => f.write_str("story_event.narrative_text 不能为空"),
Self::MissingEventId => f.write_str("story_event.event_id 不能为空"),
Self::InvalidVersion => f.write_str("story_session.version 必须大于 0"),
}
}
}
impl Error for StorySessionFieldError {}