//! 剧情领域错误。 //! //! 错误保持纯 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 {}