db/model/
result.rs

1use solomon_gremlin::{GValue, List};
2
3use crate::IxResult;
4
5#[derive(Clone, Debug)]
6pub struct ExecutionResult {
7	pub edges: IxResult,
8	pub vertices: IxResult,
9	pub new_vertices: IxResult,
10	pub new_edges: IxResult,
11	pub other: IxResult,
12}
13
14impl Default for ExecutionResult {
15	fn default() -> Self {
16		let default_list = IxResult::new("", GValue::List(List::default()));
17		Self {
18			edges: default_list.clone(),
19			vertices: default_list.clone(),
20			new_vertices: default_list.clone(),
21			new_edges: default_list.clone(),
22			other: default_list,
23		}
24	}
25}
26
27impl ExecutionResult {
28	pub fn get_from_source(&self, source: &str) -> IxResult {
29		match source {
30			"E" => self.edges.clone(),
31			"V" => self.vertices.clone(),
32			"addV" => self.new_vertices.clone(),
33			"addE" => self.new_edges.clone(),
34			_ => unimplemented!(),
35		}
36	}
37}