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}