Skip to content

Commit

Permalink
Add indices to MatchRange (v1.12 feature)
Browse files Browse the repository at this point in the history
  • Loading branch information
LukasKalbertodt committed Jan 14, 2025
1 parent 40f9402 commit 737b519
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/search.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ use std::collections::HashMap;
pub struct MatchRange {
pub start: usize,
pub length: usize,

/// If the match is somewhere inside a (potentially nested) array, this
/// field is set to the index/indices of the matched element(s).
///
/// In the simple case, if the field has the value `["foo", "bar"]`, then
/// searching for `ba` will return `indices: Some([1])`. If the value
/// contains multiple nested arrays, the first index describes the most
/// top-level array, and descending from there. For example, if the value is
/// `[{ x: "cat" }, "bear", { y: ["dog", "fox"] }]`, searching for `dog`
/// will return `indices: Some([2, 0])`.
pub indices: Option<Vec<usize>>,
}

#[derive(Serialize, Debug, Eq, PartialEq, Clone)]
Expand Down Expand Up @@ -1122,7 +1133,8 @@ mod tests {
.unwrap(),
&vec![MatchRange {
start: 0,
length: 5
length: 5,
indices: None,
}]
);
Ok(())
Expand Down

0 comments on commit 737b519

Please sign in to comment.