Skip to main content

html_to_markdown_rs/
error.rs

1//! Error types for HTML to Markdown conversion.
2
3use thiserror::Error;
4
5/// Result type for conversion operations.
6pub type Result<T> = std::result::Result<T, ConversionError>;
7
8/// Errors that can occur during HTML to Markdown conversion.
9#[derive(Error, Debug)]
10pub enum ConversionError {
11    /// HTML parsing error
12    #[error("HTML parsing error: {0}")]
13    ParseError(String),
14
15    /// HTML sanitization error
16    #[error("Sanitization error: {0}")]
17    SanitizationError(String),
18
19    /// Invalid configuration
20    #[error("Invalid configuration: {0}")]
21    ConfigError(String),
22
23    /// I/O error
24    #[error("I/O error: {0}")]
25    IoError(#[from] std::io::Error),
26
27    /// Panic caught during conversion to prevent unwinding across FFI boundaries
28    #[error("Internal panic: {0}")]
29    Panic(String),
30
31    /// Invalid input data
32    #[error("Invalid input: {0}")]
33    InvalidInput(String),
34
35    /// Visitor callback error
36    #[cfg(feature = "visitor")]
37    #[error("Visitor error: {0}")]
38    Visitor(String),
39
40    /// Generic conversion error
41    #[error("Conversion error: {0}")]
42    Other(String),
43}