/// Fetch-layer errors. Wraps primp/network failures into a single type /// that callers can match on without leaking transport details. use thiserror::Error; #[derive(Debug, Error)] pub enum FetchError { #[error("request failed: {0}")] Request(#[from] primp::Error), #[error("invalid url: {0}")] InvalidUrl(String), #[error("response body decode failed: {0}")] BodyDecode(String), #[error("extraction failed: {0}")] Extraction(#[from] webclaw_core::ExtractError), #[error("PDF extraction failed: {0}")] Pdf(#[from] webclaw_pdf::PdfError), #[error("client build failed: {0}")] Build(String), }