Skip to main content

codex_http_client/
error.rs

1//! Errors returned by the shared Codex HTTP transport.
2
3use http::HeaderMap;
4use http::StatusCode;
5use thiserror::Error;
6
7#[derive(Debug, Error)]
8pub enum TransportError {
9    #[error("http {status}: {body:?}")]
10    Http {
11        status: StatusCode,
12        url: Option<String>,
13        headers: Option<HeaderMap>,
14        body: Option<String>,
15    },
16    #[error("retry limit reached")]
17    RetryLimit,
18    #[error("timeout")]
19    Timeout,
20    #[error("network error: {0}")]
21    Network(String),
22    #[error("request build error: {0}")]
23    Build(String),
24}
25
26#[derive(Debug, Error)]
27pub enum StreamError {
28    #[error("stream failed: {0}")]
29    Stream(String),
30    #[error("timeout")]
31    Timeout,
32}