1use std::path::PathBuf;
4
5use thiserror::Error;
6
7#[derive(Debug, Error)]
9pub enum BuilderError {
10 #[error("network fetch failed for {service}/{version}: {source}")]
12 Fetch {
13 service: String,
14 version: String,
15 source: Box<dyn std::error::Error + Send + Sync>,
16 },
17
18 #[error("failed to parse Discovery document for {service}: {source}")]
20 Parse {
21 service: String,
22 source: serde_json::Error,
23 },
24
25 #[error("schema resolution error: {0}")]
27 Resolution(String),
28
29 #[error("code generation error: {0}")]
31 Codegen(String),
32
33 #[error("file I/O error writing to {path}: {source}")]
35 Io {
36 path: PathBuf,
37 source: std::io::Error,
38 },
39}