use std::collections::HashMap;
use thiserror::Error;
pub type SceneTableResult<T> = std::result::Result<T, SceneTableError>;
#[derive(Error, Debug, Clone)]
pub enum SceneTableError {
#[error("Scene not found: {scene}")]
SceneNotFound { scene: String },
#[error("No matching scene for '{scene}' with filters {filters:?}")]
NoMatchingScene {
scene: String,
filters: HashMap<String, String>,
},
#[error("Invalid scene name: '{scene}'")]
InvalidScene { scene: String },
#[error("Random selection failed")]
RandomSelectionFailed,
#[error("Duplicate scene name: {name}")]
DuplicateSceneName { name: String },
#[error("Duplicate scene path: {fn_name}")]
DuplicateScenePath { fn_name: String },
#[error("No more scenes for '{search_key}' with filters {filters:?}")]
NoMoreScenes {
search_key: String,
filters: HashMap<String, String>,
},
}
pub type WordTableResult<T> = std::result::Result<T, WordTableError>;
#[derive(Error, Debug, Clone)]
pub enum WordTableError {
#[error("単語定義 @{key} が見つかりません")]
WordNotFound { key: String },
}