abstract_eq

Function abstract_eq 

Source
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!([]),
  )
);