use std::path::PathBuf;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum BuilderError {
#[error("network fetch failed for {service}/{version}: {source}")]
Fetch {
service: String,
version: String,
source: Box<dyn std::error::Error + Send + Sync>,
},
#[error("failed to parse Discovery document for {service}: {source}")]
Parse {
service: String,
source: serde_json::Error,
},
#[error("schema resolution error: {0}")]
Resolution(String),
#[error("code generation error: {0}")]
Codegen(String),
#[error("file I/O error writing to {path}: {source}")]
Io {
path: PathBuf,
source: std::io::Error,
},
}