va_ai_api_bridge/
error.rs1use std::fmt;
2
3pub type Result<T> = std::result::Result<T, ApiBridgeError>;
4
5#[derive(Debug, Clone, PartialEq, Eq)]
6pub enum ApiBridgeError {
7 UnsupportedProtocol { protocol: String },
8 InvalidRequest { message: String },
9 InvalidResponse { message: String },
10 Conversion { message: String },
11 Adapter { message: String },
12}
13
14impl ApiBridgeError {
15 pub fn unsupported_protocol(protocol: impl Into<String>) -> Self {
16 Self::UnsupportedProtocol {
17 protocol: protocol.into(),
18 }
19 }
20
21 pub fn invalid_request(message: impl Into<String>) -> Self {
22 Self::InvalidRequest {
23 message: message.into(),
24 }
25 }
26
27 pub fn invalid_response(message: impl Into<String>) -> Self {
28 Self::InvalidResponse {
29 message: message.into(),
30 }
31 }
32
33 pub fn conversion(message: impl Into<String>) -> Self {
34 Self::Conversion {
35 message: message.into(),
36 }
37 }
38
39 pub fn adapter(message: impl Into<String>) -> Self {
40 Self::Adapter {
41 message: message.into(),
42 }
43 }
44}
45
46impl fmt::Display for ApiBridgeError {
47 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
48 match self {
49 Self::UnsupportedProtocol { protocol } => {
50 write!(f, "unsupported protocol: {protocol}")
51 }
52 Self::InvalidRequest { message } => write!(f, "invalid request: {message}"),
53 Self::InvalidResponse { message } => write!(f, "invalid response: {message}"),
54 Self::Conversion { message } => write!(f, "conversion failed: {message}"),
55 Self::Adapter { message } => write!(f, "adapter failed: {message}"),
56 }
57 }
58}
59
60impl std::error::Error for ApiBridgeError {}