predicate

Function predicate 

Source
pub fn predicate<P>(
    predicate: P,
) -> JsonPredicateMatcher<P, NoDescription, NoDescription>
where P: Fn(&Value) -> bool,
Expand description

Creates a custom JSON matcher from an arbitrary predicate function.

This function allows defining ad-hoc JSON matchers inline by supplying a closure or function that returns true for matching values. The resulting matcher can optionally be extended with:

  • .with_description("expected", "not expected") — to provide custom messages, and
  • .with_explain_fn(|v| Description::new().text(...)) — to describe mismatches dynamically.

§Example


let matcher = json::predicate(|v| v.as_i64().map_or(false, |n| n > 0))
    .with_description("a positive number", "a non-positive number");

verify_that!(j!(42), &matcher);
verify_that!(j!(-1), not(&matcher));

Use this when no built-in matcher (like is_string() or is_null()) fits your case.