Skip to main content

gws_builder/
error.rs

1//! Error types for the builder pipeline.
2
3use std::path::PathBuf;
4
5use thiserror::Error;
6
7/// Errors produced by `gws-builder`.
8#[derive(Debug, Error)]
9pub enum BuilderError {
10    /// Network or fetch failure for a Discovery document.
11    #[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    /// JSON parse failure for a Discovery document.
19    #[error("failed to parse Discovery document for {service}: {source}")]
20    Parse {
21        service: String,
22        source: serde_json::Error,
23    },
24
25    /// Schema resolution, filtering, or reference graph error.
26    #[error("schema resolution error: {0}")]
27    Resolution(String),
28
29    /// Code generation failure.
30    #[error("code generation error: {0}")]
31    Codegen(String),
32
33    /// File I/O error while writing generated output.
34    #[error("file I/O error writing to {path}: {source}")]
35    Io {
36        path: PathBuf,
37        source: std::io::Error,
38    },
39}