reifydb_sub_server/
execute.rs1use std::{error, fmt, sync::Arc};
5
6use reifydb_type::error::Diagnostic;
7
8#[derive(Debug)]
10pub enum ExecuteError {
11 Timeout,
13 Cancelled,
15 Disconnected,
17 Engine {
19 diagnostic: Arc<Diagnostic>,
21 rql: String,
23 },
24 Rejected {
26 code: String,
28 message: String,
30 },
31}
32
33impl fmt::Display for ExecuteError {
34 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
35 match self {
36 ExecuteError::Timeout => write!(f, "Query execution timed out"),
37 ExecuteError::Cancelled => write!(f, "Query was cancelled"),
38 ExecuteError::Disconnected => write!(f, "Query stream disconnected unexpectedly"),
39 ExecuteError::Engine {
40 diagnostic,
41 ..
42 } => write!(f, "Engine error: {}", diagnostic.message),
43 ExecuteError::Rejected {
44 code,
45 message,
46 } => write!(f, "Rejected [{}]: {}", code, message),
47 }
48 }
49}
50
51impl error::Error for ExecuteError {}
52
53pub type ExecuteResult<T> = Result<T, ExecuteError>;