Macro serde_json_lodash::find_index [−][src]
macro_rules! find_index { () => { ... }; ($a:expr $(,)*) => { ... }; ($a:expr, $b:expr $(,)*) => { ... }; ($a:expr, $b:expr, $c:expr $(,)*) => { ... }; ($a:expr, $b:expr, $c:expr, $($rest:tt)*) => { ... }; }
Description can be found in lodash findIndex
Examples:
#[macro_use] extern crate serde_json_lodash; use serde_json::json; let users = json!([ { "user": "barney", "active": false }, { "user": "fred", "active": false }, { "user": "pebbles", "active": true } ]); assert_eq!( find_index!(users, |o| o["user"] == "barney".to_string()), json!(0) ); // conflict with fn, no implemented // assert_eq!( // find_index!(users, json!({ "user": "fred", "active": false })), // json!(1) // ); // assert_eq!( // find_index!(users, json!(["active", false])), // json!(0) // ); // assert_eq!( // find_index!(users, json!("active")), // json!(2) // ); // assert_eq!( // find_index!(users, "active"), // json!(2) // );
More examples:
assert_eq!(find_index!(), -1); assert_eq!(find_index!(json!(null)), -1); assert_eq!(find_index!(json!(true)), -1); assert_eq!(find_index!(json!(0)), -1); assert_eq!(find_index!(json!("")), -1); assert_eq!(find_index!(json!([])), -1); assert_eq!(find_index!(json!([{"a":null},{"a":false},{"a":0},{"a":""},{"a":[]}]), |_| true), 0); assert_eq!(find_index!(json!([{"a":null},{"a":false},{"a":0},{"a":""},{"a":[]}]), |_| true, 1), 1); assert_eq!(find_index!(json!({})), -1);