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

Based on pull_at()

Examples:

#[macro_use] extern crate serde_json_lodash;
use serde_json::json;
let mut array = json!(['a', 'b', 'c', 'd']);
let pulled = pull_at!(&mut array, vec![1, 3]);
assert_eq!(
  array,
  json!(['a', 'c'])
);
assert_eq!(
  pulled,
  json!(['b', 'd'])
);

More examples:

assert_eq!(pull_at!(), json!([]));
assert_eq!(pull_at!(json!(null)), json!([]));
assert_eq!(pull_at!(json!(false)), json!([]));
assert_eq!(pull_at!(json!(0)), json!([]));
assert_eq!(pull_at!(json!("")), json!([]));
assert_eq!(pull_at!(json!([])), json!([]));
assert_eq!(pull_at!(json!({})), json!([]));