shape_runtime/engine/
types.rs1use crate::query_result::QueryType;
4use serde::{Deserialize, Serialize};
5use shape_wire::WireValue;
6use shape_wire::metadata::TypeInfo;
7
8#[derive(Clone)]
13pub struct EngineBootstrapState {
14 pub semantic: crate::snapshot::SemanticSnapshot,
15 pub context: crate::context::ExecutionContext,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct ExecutionResult {
21 pub value: WireValue,
23 pub type_info: Option<TypeInfo>,
25 pub execution_type: ExecutionType,
27 pub metrics: ExecutionMetrics,
29 pub messages: Vec<Message>,
31 #[serde(skip_serializing_if = "Option::is_none", default)]
33 pub content_json: Option<serde_json::Value>,
34 #[serde(skip_serializing_if = "Option::is_none", default)]
36 pub content_html: Option<String>,
37 #[serde(skip_serializing_if = "Option::is_none", default)]
39 pub content_terminal: Option<String>,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
44pub enum ExecutionType {
45 Query(QueryType),
47 Function(String),
49 Script,
51 Repl,
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize)]
57pub struct ExecutionMetrics {
58 pub execution_time_ms: u64,
60 pub parse_time_ms: u64,
62 pub analysis_time_ms: u64,
64 pub runtime_time_ms: u64,
66 pub memory_used_bytes: Option<usize>,
68 pub rows_processed: Option<usize>,
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
74pub struct Message {
75 pub level: MessageLevel,
76 pub text: String,
77 pub location: Option<String>,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize)]
81pub enum MessageLevel {
82 Info,
83 Warning,
84 Error,
85}