MCPcopy Create free account
hub / github.com/AmrDeveloper/GQL / evaluate_expression

Function evaluate_expression

crates/gitql-engine/src/engine_evaluator.rs:57–214  ·  view source on GitHub ↗
(
    env: &mut Environment,
    expression: &Box<dyn Expr>,
    titles: &[String],
    object: &Vec<Box<dyn Value>>,
)

Source from the content-addressed store, hash-verified

55
56#[allow(clippy::borrowed_box)]
57pub fn evaluate_expression(
58 env: &mut Environment,
59 expression: &Box<dyn Expr>,
60 titles: &[String],
61 object: &Vec<Box<dyn Value>>,
62) -> Result<Box<dyn Value>, String> {
63 match expression.kind() {
64 Assignment => {
65 let expr = expression
66 .as_any()
67 .downcast_ref::<AssignmentExpr>()
68 .unwrap();
69 evaluate_assignment(env, expr, titles, object)
70 }
71 String => {
72 let expr = expression.as_any().downcast_ref::<StringExpr>().unwrap();
73 evaluate_string(expr)
74 }
75 Symbol => {
76 let expr = expression.as_any().downcast_ref::<SymbolExpr>().unwrap();
77 evaluate_symbol(expr, titles, object)
78 }
79 Array => {
80 let expr = expression.as_any().downcast_ref::<ArrayExpr>().unwrap();
81 evaluate_array(env, expr, titles, object)
82 }
83 GlobalVariable => {
84 let expr = expression
85 .as_any()
86 .downcast_ref::<GlobalVariableExpr>()
87 .unwrap();
88 evaluate_global_variable(env, expr)
89 }
90 Number => {
91 let expr = expression.as_any().downcast_ref::<NumberExpr>().unwrap();
92 evaluate_number(expr)
93 }
94 Boolean => {
95 let expr = expression.as_any().downcast_ref::<BooleanExpr>().unwrap();
96 evaluate_boolean(expr)
97 }
98 Interval => {
99 let expr = expression.as_any().downcast_ref::<IntervalExpr>().unwrap();
100 evaluate_interval(expr)
101 }
102 PrefixUnary => {
103 let expr = expression.as_any().downcast_ref::<UnaryExpr>().unwrap();
104 evaluate_prefix_unary(env, expr, titles, object)
105 }
106 Index => {
107 let expr = expression.as_any().downcast_ref::<IndexExpr>().unwrap();
108 evaluate_collection_index(env, expr, titles, object)
109 }
110 Slice => {
111 let expr = expression.as_any().downcast_ref::<SliceExpr>().unwrap();
112 evaluate_collection_slice(env, expr, titles, object)
113 }
114 Arithmetic => {

Callers 15

evaluate_assignmentFunction · 0.85
evaluate_arrayFunction · 0.85
evaluate_prefix_unaryFunction · 0.85
evaluate_arithmeticFunction · 0.85
evaluate_comparisonFunction · 0.85
evaluate_containsFunction · 0.85
evaluate_contained_byFunction · 0.85
evaluate_likeFunction · 0.85

Calls 15

evaluate_assignmentFunction · 0.85
evaluate_stringFunction · 0.85
evaluate_symbolFunction · 0.85
evaluate_arrayFunction · 0.85
evaluate_global_variableFunction · 0.85
evaluate_numberFunction · 0.85
evaluate_booleanFunction · 0.85
evaluate_intervalFunction · 0.85
evaluate_prefix_unaryFunction · 0.85
evaluate_arithmeticFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…