pubmed_parser/
error.rs

1use std::result;
2
3use thiserror::Error;
4
5/// Error types for PubMed/PMC parsing operations
6#[derive(Error, Debug)]
7pub enum ParseError {
8    /// XML parsing failed
9    #[error("XML parsing failed: {0}")]
10    XmlError(String),
11
12    /// JSON parsing failed
13    #[error("JSON parsing failed: {0}")]
14    JsonError(#[from] serde_json::Error),
15
16    /// Article not found
17    #[error("Article not found: PMID {pmid}")]
18    ArticleNotFound { pmid: String },
19
20    /// PMC full text not available
21    #[error("PMC full text not available for {id}")]
22    PmcNotAvailable { id: String },
23
24    /// Invalid PMID format
25    #[error("Invalid PMID format: {pmid}")]
26    InvalidPmid { pmid: String },
27
28    /// Invalid PMC ID format
29    #[error("Invalid PMC ID format: {pmcid}")]
30    InvalidPmcid { pmcid: String },
31
32    /// IO error for file operations
33    #[error("IO error: {message}")]
34    IoError { message: String },
35}
36
37pub type Result<T> = result::Result<T, ParseError>;