use thiserror::Error;
#[derive(Error, Debug)]
pub enum MarkovError {
#[error("Invalid parameter: {0}")]
ParamError(String),
#[error("Invalid JSON: {0}")]
JsonError(#[from] serde_json::Error),
#[error("Invalid model format: {0}")]
ModelFormatError(String),
#[error("State size mismatch: {0}")]
StateSizeError(String),
#[error("Model combination error: {0}")]
CombineError(String),
#[error("Sentence generation failed: {0}")]
GenerationError(String),
}
pub type Result<T> = std::result::Result<T, MarkovError>;