diff options
Diffstat (limited to 'src/errors.rs')
| -rw-r--r-- | src/errors.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/errors.rs b/src/errors.rs new file mode 100644 index 0000000..8a20863 --- /dev/null +++ b/src/errors.rs @@ -0,0 +1,17 @@ +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum DiceError { + #[error("解析错误: {0}")] + ParseError(String), + #[error("计算错误: {0}")] + CalculationError(String), + #[error("无效的骰子表达式: {0}")] + InvalidExpression(String), +} + +impl std::convert::From<DiceError> for pyo3::PyErr { + fn from(err: DiceError) -> pyo3::PyErr { + pyo3::PyErr::new::<pyo3::exceptions::PyValueError, _>(err.to_string()) + } +} |
