Skip to main content

codex_runtime/runtime/
errors.rs

1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3use thiserror::Error;
4
5#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
6#[serde(rename_all = "camelCase")]
7pub struct RpcErrorObject {
8    pub code: i64,
9    pub message: String,
10    pub data: Option<Value>,
11}
12
13#[derive(Clone, Debug, Error, Serialize, Deserialize, PartialEq, Eq)]
14#[serde(rename_all = "camelCase")]
15pub enum RuntimeError {
16    #[error("runtime is not initialized")]
17    NotInitialized,
18    #[error("runtime is already initialized")]
19    AlreadyInitialized,
20    #[error("invalid config: {0}")]
21    InvalidConfig(String),
22    #[error("transport is closed")]
23    TransportClosed,
24    #[error("child process exited")]
25    ProcessExited,
26    #[error("request timed out")]
27    Timeout,
28    #[error("server request receiver already taken")]
29    ServerRequestReceiverTaken,
30    #[error("internal error: {0}")]
31    Internal(String),
32}
33
34#[derive(Clone, Debug, Error, Serialize, Deserialize, PartialEq, Eq)]
35#[serde(rename_all = "camelCase")]
36pub enum RpcError {
37    #[error("runtime overloaded")]
38    Overloaded,
39    #[error("rpc call timed out")]
40    Timeout,
41    #[error("invalid request: {0}")]
42    InvalidRequest(String),
43    #[error("method not found: {0}")]
44    MethodNotFound(String),
45    #[error("server error: {0:?}")]
46    ServerError(RpcErrorObject),
47    #[error("transport is closed")]
48    TransportClosed,
49}
50
51#[derive(Clone, Debug, Error, Serialize, Deserialize, PartialEq, Eq)]
52#[serde(rename_all = "camelCase")]
53pub enum SinkError {
54    #[error("io error: {0}")]
55    Io(String),
56    #[error("serialize error: {0}")]
57    Serialize(String),
58    #[error("internal error: {0}")]
59    Internal(String),
60}