macro_rules! add {
    () => { ... };
    ($a:expr $(,)*) => { ... };
    ($a:expr, $b:expr $(,)*) => { ... };
    ($a:expr, $b:expr, $($rest:tt)*) => { ... };
}
Expand description

Based on add()

Examples:

#[macro_use] extern crate serde_json_lodash;
use serde_json::json;
assert_eq!(
  add!(json!(6), json!(4)),
  json!(10)
);

More examples:

assert_eq!(add!(), json!(0));
assert_eq!(add!(json!(null)), json!(null));
assert_eq!(add!(json!(null),json!(null)), json!(0));
assert_eq!(add!(json!(null),json!(true)), json!(1));
assert_eq!(add!(json!(null),json!(1)), json!(1));
assert_eq!(add!(json!(null),json!("_a")), json!("null_a"));
assert_eq!(add!(json!(null),json!([])), json!(0));
assert_eq!(add!(json!(null),json!([2])), json!(2));
assert_eq!(add!(json!(null),json!(["a"])), json!(null)); // NaN
assert_eq!(add!(json!(false)), json!(false));
assert_eq!(add!(json!(true),json!(false)), json!(1));
assert_eq!(add!(json!(true),json!(1.1)), json!(2.1));
assert_eq!(add!(json!(false),json!("_b")), json!("false_b"));
assert_eq!(add!(json!(true),json!([])), json!(1));
assert_eq!(add!(json!(true),json!([2])), json!(3));
assert_eq!(add!(json!(true),json!(["a"])), json!(null)); // NaN
assert_eq!(add!(json!(0)), json!(0));
assert_eq!(add!(json!(1),json!(true)), json!(2));
assert_eq!(add!(json!(2),json!("3")), json!("23"));
assert_eq!(add!(json!(3),json!([])), json!(3));
assert_eq!(add!(json!(4),json!([1])), json!(5));
assert_eq!(add!(json!(5),json!([""])), json!(5));
assert_eq!(add!(json!(6),json!(["a"])), json!(null)); // NaN
assert_eq!(add!(json!("")), json!(""));
assert_eq!(add!(json!("a"),json!("b")), json!("ab"));
assert_eq!(add!(json!([])), json!([]));
assert_eq!(add!(json!([1]),json!([2])), json!(3));
assert_eq!(add!(json!({})), json!({}));
assert_eq!(add!(json!({}),json!(1)), json!(null)); // NaN