pub fn abstract_eq(first: &Value, second: &Value) -> bool
Expand description
Compare values in the JavaScript ==
style
Implements the Abstract Equality Comparison algorithm (==
in JS)
as defined here.
use serde_json::json;
use jsonlogic_rs::js_op::abstract_eq;
assert!(
abstract_eq(
&json!(null),
&json!(null),
)
);
assert!(
abstract_eq(
&json!(1.0),
&json!(1),
)
);
assert!(
abstract_eq(
&json!("foo"),
&json!("foo"),
)
);
assert!(
abstract_eq(
&json!(true),
&json!(true),
)
);
assert!(
abstract_eq(
&json!("1"),
&json!(1.0),
)
);
assert!(
abstract_eq(
&json!(1.0),
&json!("1"),
)
);
assert!(
abstract_eq(
&json!(true),
&json!("1"),
)
);
assert!(
abstract_eq(
&json!(true),
&json!(1.0),
)
);
assert!(
abstract_eq(
&json!({}),
&json!("[object Object]"),
)
);
assert!(
! abstract_eq(
&json!({}),
&json!({}),
)
);
assert!(
! abstract_eq(
&json!([]),
&json!([]),
)
);