diff --git a/src/bin.rs b/src/bin.rs index 47c977b..9c17df6 100644 --- a/src/bin.rs +++ b/src/bin.rs @@ -143,6 +143,26 @@ impl Loopable for serde_json::Value { impl CompareContextElement for serde_json::Value { fn equals(&self, other: &dyn ContextElement) -> bool { - false + match self { + serde_json::Value::Null => false, + serde_json::Value::Bool(boolean) => false, + serde_json::Value::Number(_num) => false, + serde_json::Value::String(string_value) => { + // Handle json string + match other.to_any().downcast_ref::() { + None => (), + Some(other_json_value) => return self == other_json_value, + } + // Handle rust string (for string literals) + match other.to_any().downcast_ref::() { + None => (), + Some(other_string) => return string_value == other_string, + } + // Otherwise we know of no other string types + false + } + serde_json::Value::Array(array_value) => false, + serde_json::Value::Object(_obj) => false, + } } }