MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / values_equal

Function values_equal

graphlite/src/cache/subquery_cache.rs:155–174  ·  view source on GitHub ↗

Helper function to compare Values (since Value doesn't implement Eq)

(a: &Value, b: &Value)

Source from the content-addressed store, hash-verified

153
154// Helper function to compare Values (since Value doesn't implement Eq)
155fn values_equal(a: &Value, b: &Value) -> bool {
156 match (a, b) {
157 (Value::String(a), Value::String(b)) => a == b,
158 (Value::Number(a), Value::Number(b)) => (a - b).abs() < f64::EPSILON,
159 (Value::Boolean(a), Value::Boolean(b)) => a == b,
160 (Value::Null, Value::Null) => true,
161 (Value::DateTime(a), Value::DateTime(b)) => a == b,
162 (Value::DateTimeWithFixedOffset(a), Value::DateTimeWithFixedOffset(b)) => a == b,
163 (Value::DateTimeWithNamedTz(tz_a, dt_a), Value::DateTimeWithNamedTz(tz_b, dt_b)) => {
164 tz_a == tz_b && dt_a == dt_b
165 }
166 (Value::TimeWindow(a), Value::TimeWindow(b)) => a == b,
167 (Value::Array(a), Value::Array(b)) => {
168 a.len() == b.len() && a.iter().zip(b).all(|(x, y)| values_equal(x, y))
169 }
170 (Value::Vector(a), Value::Vector(b)) => a == b,
171 (Value::Path(a), Value::Path(b)) => a == b,
172 _ => false,
173 }
174}
175
176// Helper function to hash Values (since Value doesn't implement Hash)
177fn hash_value<H: Hasher>(value: &Value, state: &mut H) {

Callers 1

eqMethod · 0.85

Calls 2

lenMethod · 0.45
iterMethod · 0.45

Tested by

no test coverage detected