37 lines
1.4 KiB
Rust
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 {}
|