#[derive(Debug, thiserror::Error)]
pub enum CrawlerError {
    #[error(transparent)]
    ExtractorError(#[from] crate::extractor::ExtractorError),

    #[error(transparent)]
    UrlParseError(#[from] url::ParseError),

    #[error("No starting URL was provided")]
    NoStartUrl,

    #[error(transparent)]
    ReqwestError(#[from] reqwest::Error),

    #[error(transparent)]
    JsonParseError(#[from] serde_json::Error),

    #[error(transparent)]
    FileError(#[from] std::io::Error),

    #[error("No content to extract")]
    NoContent,
}
