Skip to main content

synth_ai_core/tunnels/
errors.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum TunnelError {
5    #[error("tunnel config error: {0}")]
6    Config(String),
7    #[error("tunnel API error: {0}")]
8    Api(String),
9    #[error("lease error: {0}")]
10    Lease(String),
11    #[error("connector error: {0}")]
12    Connector(String),
13    #[error("gateway error: {0}")]
14    Gateway(String),
15    #[error("local app error: {0}")]
16    LocalApp(String),
17    #[error("dns error: {0}")]
18    Dns(String),
19    #[error("process error: {0}")]
20    Process(String),
21    #[error("websocket error: {0}")]
22    WebSocket(String),
23}
24
25impl TunnelError {
26    pub fn config(msg: impl Into<String>) -> Self {
27        TunnelError::Config(msg.into())
28    }
29    pub fn api(msg: impl Into<String>) -> Self {
30        TunnelError::Api(msg.into())
31    }
32    pub fn lease(msg: impl Into<String>) -> Self {
33        TunnelError::Lease(msg.into())
34    }
35    pub fn connector(msg: impl Into<String>) -> Self {
36        TunnelError::Connector(msg.into())
37    }
38    pub fn gateway(msg: impl Into<String>) -> Self {
39        TunnelError::Gateway(msg.into())
40    }
41    pub fn local(msg: impl Into<String>) -> Self {
42        TunnelError::LocalApp(msg.into())
43    }
44    pub fn dns(msg: impl Into<String>) -> Self {
45        TunnelError::Dns(msg.into())
46    }
47    pub fn process(msg: impl Into<String>) -> Self {
48        TunnelError::Process(msg.into())
49    }
50    pub fn websocket(msg: impl Into<String>) -> Self {
51        TunnelError::WebSocket(msg.into())
52    }
53}