mirror of
https://github.com/fluencelabs/jsonpath
synced 2025-05-05 14:12:14 +00:00
Leaves 처리 위치 변경
This commit is contained in:
parent
5f832e8fe7
commit
d384079842
@ -470,12 +470,12 @@ fn walk_all<'a>(vec: &Vec<&'a Value>, tmp: &mut Vec<&'a Value>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn walk<'a, F>(vec: &Vec<&'a Value>, tmp: &mut Vec<&'a Value>, fun: &F)
|
fn walk<'a, F>(vec: &Vec<&'a Value>, tmp: &mut Vec<&'a Value>, fun: &F)
|
||||||
where
|
|
||||||
F: Fn(&Value) -> Option<Vec<&Value>>,
|
|
||||||
{
|
|
||||||
fn _walk<'a, F>(v: &'a Value, tmp: &mut Vec<&'a Value>, fun: &F)
|
|
||||||
where
|
where
|
||||||
F: Fn(&Value) -> Option<Vec<&Value>>,
|
F: Fn(&Value) -> Option<Vec<&Value>>,
|
||||||
|
{
|
||||||
|
fn _walk<'a, F>(v: &'a Value, tmp: &mut Vec<&'a Value>, fun: &F)
|
||||||
|
where
|
||||||
|
F: Fn(&Value) -> Option<Vec<&Value>>,
|
||||||
{
|
{
|
||||||
if let Some(mut ret) = fun(v) {
|
if let Some(mut ret) = fun(v) {
|
||||||
tmp.append(&mut ret);
|
tmp.append(&mut ret);
|
||||||
@ -896,17 +896,17 @@ impl<'a, 'b> NodeVisitor for Selector<'a, 'b> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ParseToken::Relative => {
|
ParseToken::Relative => {
|
||||||
|
if let Some(ParseToken::Array) = self.tokens.last() {
|
||||||
|
let array_token = self.tokens.pop();
|
||||||
|
if let Some(ParseToken::Leaves) = self.tokens.last() {
|
||||||
|
self.tokens.pop();
|
||||||
|
self.all_from_current();
|
||||||
|
}
|
||||||
|
self.tokens.push(array_token.unwrap());
|
||||||
|
}
|
||||||
self.new_filter_context();
|
self.new_filter_context();
|
||||||
}
|
}
|
||||||
ParseToken::In | ParseToken::Leaves => {
|
ParseToken::In | ParseToken::Leaves | ParseToken::Array => {
|
||||||
self.tokens.push(token.clone());
|
|
||||||
}
|
|
||||||
ParseToken::Array => {
|
|
||||||
if let Some(ParseToken::Leaves) = self.tokens.last() {
|
|
||||||
self.tokens.pop();
|
|
||||||
self.all_from_current();
|
|
||||||
}
|
|
||||||
|
|
||||||
self.tokens.push(token.clone());
|
self.tokens.push(token.clone());
|
||||||
}
|
}
|
||||||
ParseToken::ArrayEof => {
|
ParseToken::ArrayEof => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user