dm_database_parser_sqllog/error.rs
1//! 错误类型定义
2//!
3//! 定义了解析过程中可能出现的所有错误类型。
4//!
5//! # 用法说明
6//!
7//! ParseError 仅作为库 API 的错误返回类型,普通用户无需手动构造。
8
9use thiserror::Error;
10
11/// 解析错误类型
12///
13/// 包含了 SQL 日志解析过程中可能遇到的所有错误情况。
14/// 所有错误都包含原始输入数据以便于调试。
15#[derive(Debug, Clone, PartialEq, Error)]
16pub enum ParseError {
17 /// 通用的格式错误
18 #[error("invalid format at line {line_number} | raw: {raw}")]
19 InvalidFormat {
20 /// 原始输入数据
21 raw: String,
22 /// 文件行号
23 line_number: u64,
24 },
25
26 /// 文件未找到或无法访问
27 #[error("file not found or inaccessible: {path}")]
28 FileNotFound {
29 /// 文件路径
30 path: String,
31 },
32
33 /// IO 操作错误
34 #[error("IO error: {0}")]
35 IoError(String),
36}