summaryrefslogtreecommitdiffstats
path: root/vendor/jsonpath_lib
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
commit9918693037dce8aa4bb6f08741b6812923486c18 (patch)
tree21d2b40bec7e6a7ea664acee056eb3d08e15a1cf /vendor/jsonpath_lib
parentReleasing progress-linux version 1.75.0+dfsg1-5~progress7.99u1. (diff)
downloadrustc-9918693037dce8aa4bb6f08741b6812923486c18.tar.xz
rustc-9918693037dce8aa4bb6f08741b6812923486c18.zip
Merging upstream version 1.76.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/jsonpath_lib')
-rw-r--r--vendor/jsonpath_lib/.cargo-checksum.json2
-rw-r--r--vendor/jsonpath_lib/Cargo.toml12
-rw-r--r--vendor/jsonpath_lib/src/lib.rs2
-rw-r--r--vendor/jsonpath_lib/src/parser/mod.rs6
-rw-r--r--vendor/jsonpath_lib/src/select/cmp.rs39
-rw-r--r--vendor/jsonpath_lib/src/select/expr_term.rs11
-rw-r--r--vendor/jsonpath_lib/src/select/mod.rs2
-rw-r--r--vendor/jsonpath_lib/src/select/value_walker.rs11
-rw-r--r--vendor/jsonpath_lib/tests/lib.rs4
9 files changed, 55 insertions, 34 deletions
diff --git a/vendor/jsonpath_lib/.cargo-checksum.json b/vendor/jsonpath_lib/.cargo-checksum.json
index 8990c9bdb..8ee43aaad 100644
--- a/vendor/jsonpath_lib/.cargo-checksum.json
+++ b/vendor/jsonpath_lib/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"2d3238f9f5f14d6698af79ebae55df11ef84f318bfe85ad4729ecd6e64d3c26a","LICENSE":"1006a94b25289fc498aae9fe24bb0418fce9522d9a0e2621371668828e52fc92","README.md":"2e85f9554885b95012235b01666fed918b5ad2d40f5395f735fd3887309f2618","bench.sh":"f5dd6651fd9a45476e9e98892df7eaa61cf4adea9e2daac05d57c09e75502fdf","build-wasm.sh":"8d15b5e6fd20b254ac41239f03fac864dbddda5f8efca7ea95fd1271d32da794","clippy.sh":"ce61bc9547003f2459165ae19e69c519f8e0e25689d1a2f0d56d0ef526347a84","coverage.sh":"93edb1b8c6e6a034b07c3f97f72d036dd718392c4cb9cafa081fad2987108077","docs/0.bootstrap.js":"fc485ef969f725042a70724b68ed7b8047e7ad2658604da92de57e74e5f8dab5","docs/bench/0.bootstrap.js":"ab1ca4cddf4047d00ff16bf340ba3f3184ff7398da96b8443dc72982495598c1","docs/bench/1.bootstrap.js":"c71a9447f2e392f6ebf12e14eb08a8ddddec549aa80307c804607a9d4adc2eb6","docs/bench/bootstrap.js":"7d42b4d36d56513e861975ccc76158f61689e62fdefd346736c87e791b4ed821","docs/bench/f9980c137fc7d5609726.module.wasm":"38a1865d7455ab0e17031f24196e5e029ccebb39ff903632ab08caed3a509e53","docs/bench/index.html":"867ef062decbb70de89242076e15fd0c6a643de3674cd0146fa4f68553ef9ff6","docs/bootstrap.js":"bcd1a9f509cf6eb9b453bec07c5212ab47c5bd661aa1ee727c093e06c441aa2b","docs/data/example.json":"97c96fec8ddfaa2a2da262906f41fac0d9776f1d194e718d6310fff4ef8e0a48","docs/f9980c137fc7d5609726.module.wasm":"38a1865d7455ab0e17031f24196e5e029ccebb39ff903632ab08caed3a509e53","docs/index.html":"6e69edab8aca1841cc81710287d5f5385f6ef13f1116486a33ea6224234feb47","profiling.sh":"2bedaccc8479bca2001d5541077b434614bdc08613b62585fe541f4b9d0de970","src/ffi/mod.rs":"42199ad562a681d444f71eff7dbc8776408998855b2cdf002664a9dd68045dc2","src/lib.rs":"a4b6c918ad8e3c05d58102f843557e922bf75bdb05504b1407abc1d12a9af956","src/parser/mod.rs":"0e91c23ddf89c84d42a6dff2cd1e98fbfff5698f6138c53a10a85d6e3975b4f2","src/parser/path_reader.rs":"cabd8794f40d57295cc7b7ca33ae672e6f4145d451d4f1efe202aafa8f5fcd26","src/parser/tokenizer.rs":"f6ffc3b71c89114102a109f927e255992ab0b11a1680b96539b1c3eddea08c8c","src/select/cmp.rs":"f7c699ee5a9c1c19e39ed1e684c68366b1b3cae15c4ecae69e411e8f5965f80f","src/select/expr_term.rs":"3ec7be8641e15ae7f3e4d1dd225316a523f26fd612d92dd1ab1fd7758244b262","src/select/mod.rs":"1089ae7d3d74de05a249994326e0ae063c9704ba6d7393f47f8d13952c3f0d73","src/select/value_walker.rs":"4bfd5a8eaaa6ba84e27f88e2a546bb8b401402a5944bd3461bc28b85a88911e1","tests/array_filter.rs":"dffae415b505ab70f40c3c2a1db24af99f365595bb9d267ea780ad46b621a8a4","tests/common.rs":"cc1ad24dc91e7c91cb5520cb1a9a85c29b18bcee637f512db4fb649f6143f507","tests/filter.rs":"5d0743e7108aba1a1feabeffe7fb279d91bd8fb1b36396e99c7fdac8ddd418e3","tests/jsonpath_examples.rs":"0c8b655f431a7e48807c321f465869afbef937c447ee17a7c457d54efecfa257","tests/lib.rs":"d50cde44b94df29b875d4e4429655820b2e9dd5be27cfac65e9c61141188e3aa","tests/op.rs":"c8117c32b43c6e4c2d81b0fa25574de134e5c5aa1b13d048c3ba16da8e5da47f","tests/paths.rs":"f0f281527a54df9af4c6b075d449f6af05efa0afb0968a34891265c8437c8023","tests/precompile.rs":"83a9ba9be943c44680571915ca27d24f83bfccfb04220c4397c4a0ef372817c2","tests/readme.rs":"254f7779f99b77687e06f1a572c6ec397f03c9e41ed7e159c8ed8ab6b08a3790","tests/return_type.rs":"10b47c78e4d3768d3b9542e5f4cc23158f27e86704aec1e1de58abedd82fad8e","tests/selector.rs":"d4288c468f6f81b135146046f2732673d51f71ecdd2c402fac1b1f5065519c14"},"package":"61352ec23883402b7d30b3313c16cbabefb8907361c4eb669d990cbb87ceee5a"} \ No newline at end of file
+{"files":{"Cargo.toml":"9e178307bac493cfcaa0d84ce41863895580d95d97ad7b366e50f9975f0b1054","LICENSE":"1006a94b25289fc498aae9fe24bb0418fce9522d9a0e2621371668828e52fc92","README.md":"2e85f9554885b95012235b01666fed918b5ad2d40f5395f735fd3887309f2618","bench.sh":"f5dd6651fd9a45476e9e98892df7eaa61cf4adea9e2daac05d57c09e75502fdf","build-wasm.sh":"8d15b5e6fd20b254ac41239f03fac864dbddda5f8efca7ea95fd1271d32da794","clippy.sh":"ce61bc9547003f2459165ae19e69c519f8e0e25689d1a2f0d56d0ef526347a84","coverage.sh":"93edb1b8c6e6a034b07c3f97f72d036dd718392c4cb9cafa081fad2987108077","docs/0.bootstrap.js":"fa923cd06f00ddbc90165ea8fa354d5136bce343def053a9e5c1912c1b1574a1","docs/494668cdc2dc16eb1895.module.wasm":"253c46ece5d2a58ab98d5c860b858cdb105360fb06fdecb3131ffce60eb784eb","docs/bench/0.bootstrap.js":"8e15dbff114eabd1380a5ebaddcf44718d4c44e6fa4d76ef92c1e39bb8f8aa2f","docs/bench/1.bootstrap.js":"0dbee6f24d7542aa0dcaac430e4bd0be5818a3d26516332ed558723423f26817","docs/bench/494668cdc2dc16eb1895.module.wasm":"253c46ece5d2a58ab98d5c860b858cdb105360fb06fdecb3131ffce60eb784eb","docs/bench/bootstrap.js":"f1a643279902a25823b28f3eb0ad1bc58ea00dcf2855e92c2b49ff99eda0559d","docs/bench/index.html":"867ef062decbb70de89242076e15fd0c6a643de3674cd0146fa4f68553ef9ff6","docs/bootstrap.js":"a7066e48a2e3eef70c498f3e7bcef94ce90a0d7f4d561d921a8df235b9f9ae2b","docs/data/example.json":"97c96fec8ddfaa2a2da262906f41fac0d9776f1d194e718d6310fff4ef8e0a48","docs/index.html":"6e69edab8aca1841cc81710287d5f5385f6ef13f1116486a33ea6224234feb47","docs/serverwasm.py":"00e8e27be6e24eac1f19771e29d33cfef56b458a3528efd61bd5101de2fcf67f","profiling.sh":"2bedaccc8479bca2001d5541077b434614bdc08613b62585fe541f4b9d0de970","src/ffi/mod.rs":"42199ad562a681d444f71eff7dbc8776408998855b2cdf002664a9dd68045dc2","src/lib.rs":"c64fdd2e2d417d89e9a9560a35739451159f5a7d62ca7bba49b46bf115014588","src/parser/mod.rs":"0aa8da2e9df46b84e0c7c2eea32e31d5fb9484a11665564e1674efde6c62604f","src/parser/path_reader.rs":"cabd8794f40d57295cc7b7ca33ae672e6f4145d451d4f1efe202aafa8f5fcd26","src/parser/tokenizer.rs":"f6ffc3b71c89114102a109f927e255992ab0b11a1680b96539b1c3eddea08c8c","src/select/cmp.rs":"b427e4c06d2a59ecc0ce67edfffad82570c8f1d8745b43b673a9df31c9ff44d0","src/select/expr_term.rs":"31d24a5491655922a481cce4083b407c3e621c4b8171a7aca3fbf300e4ea19e0","src/select/mod.rs":"9a687e80e8da02a96239710db7b7d9614a5a1e8f8f58d8869a7c97e2f450df60","src/select/value_walker.rs":"f6ea37fb9c9df39d4cb9626b5294c36a2f6a999e303703d2caa922a31f7c1c99","tests/array_filter.rs":"dffae415b505ab70f40c3c2a1db24af99f365595bb9d267ea780ad46b621a8a4","tests/common.rs":"cc1ad24dc91e7c91cb5520cb1a9a85c29b18bcee637f512db4fb649f6143f507","tests/filter.rs":"5d0743e7108aba1a1feabeffe7fb279d91bd8fb1b36396e99c7fdac8ddd418e3","tests/jsonpath_examples.rs":"0c8b655f431a7e48807c321f465869afbef937c447ee17a7c457d54efecfa257","tests/lib.rs":"c26ec59c4cda149582768397c363b017e186363574e7dfec396e3bff9471f226","tests/op.rs":"c8117c32b43c6e4c2d81b0fa25574de134e5c5aa1b13d048c3ba16da8e5da47f","tests/paths.rs":"f0f281527a54df9af4c6b075d449f6af05efa0afb0968a34891265c8437c8023","tests/precompile.rs":"83a9ba9be943c44680571915ca27d24f83bfccfb04220c4397c4a0ef372817c2","tests/readme.rs":"254f7779f99b77687e06f1a572c6ec397f03c9e41ed7e159c8ed8ab6b08a3790","tests/return_type.rs":"10b47c78e4d3768d3b9542e5f4cc23158f27e86704aec1e1de58abedd82fad8e","tests/selector.rs":"d4288c468f6f81b135146046f2732673d51f71ecdd2c402fac1b1f5065519c14"},"package":"eaa63191d68230cccb81c5aa23abd53ed64d83337cacbb25a7b8c7979523774f"} \ No newline at end of file
diff --git a/vendor/jsonpath_lib/Cargo.toml b/vendor/jsonpath_lib/Cargo.toml
index 512897cb7..08a74a611 100644
--- a/vendor/jsonpath_lib/Cargo.toml
+++ b/vendor/jsonpath_lib/Cargo.toml
@@ -12,10 +12,10 @@
[package]
name = "jsonpath_lib"
-version = "0.2.6"
+version = "0.3.0"
authors = ["Changseok Han <freestrings@gmail.com>"]
description = "It is JsonPath engine written in Rust. it provide a similar API interface in Webassembly and Javascript too. - Webassembly Demo: https://freestrings.github.io/jsonpath"
-documentation = "https://docs.rs/jsonpath_lib/0.2.6/jsonpath_lib"
+documentation = "https://docs.rs/jsonpath_lib/0.3.0/jsonpath_lib"
readme = "README.md"
keywords = ["jsonpath", "json", "webassembly", "lua", "query"]
categories = ["wasm", "parser-implementations", "api-bindings"]
@@ -26,12 +26,6 @@ repository = "https://github.com/freestrings/jsonpath"
name = "jsonpath_lib"
crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
-[dependencies.array_tool]
-version = "1.0.3"
-
-[dependencies.env_logger]
-version = "0.7"
-
[dependencies.log]
version = "0.4"
@@ -42,6 +36,8 @@ features = ["derive"]
[dependencies.serde_json]
version = "1.0"
features = ["preserve_order"]
+[dev-dependencies.env_logger]
+version = "0.8"
[badges.travis-ci]
branch = "master"
repository = "freestrings/jsonpath"
diff --git a/vendor/jsonpath_lib/src/lib.rs b/vendor/jsonpath_lib/src/lib.rs
index 55ac51943..1258a010f 100644
--- a/vendor/jsonpath_lib/src/lib.rs
+++ b/vendor/jsonpath_lib/src/lib.rs
@@ -122,9 +122,7 @@
//! &json!({"category" : "fiction","author" : "Herman Melville","title" : "Moby Dick","isbn" : "0-553-21311-3","price" : 8.99})
//! ]);
//! ```
-extern crate array_tool;
extern crate core;
-extern crate env_logger;
#[macro_use]
extern crate log;
extern crate serde;
diff --git a/vendor/jsonpath_lib/src/parser/mod.rs b/vendor/jsonpath_lib/src/parser/mod.rs
index 91cd8960b..5a28b730d 100644
--- a/vendor/jsonpath_lib/src/parser/mod.rs
+++ b/vendor/jsonpath_lib/src/parser/mod.rs
@@ -80,7 +80,7 @@ pub struct Parser;
impl Parser {
pub fn compile(input: &str) -> ParseResult<Node> {
let mut tokenizer = TokenReader::new(input);
- Ok(Self::json_path(&mut tokenizer)?)
+ Self::json_path(&mut tokenizer)
}
fn json_path(tokenizer: &mut TokenReader) -> ParseResult<Node> {
@@ -145,6 +145,7 @@ impl Parser {
}
}
+ #[allow(clippy::unnecessary_wraps)]
fn path_leaves_key(prev: Node, tokenizer: &mut TokenReader) -> ParseResult<Node> {
debug!("#path_leaves_key");
Ok(Node {
@@ -154,6 +155,7 @@ impl Parser {
})
}
+ #[allow(clippy::unnecessary_wraps)]
fn path_leaves_all(prev: Node, tokenizer: &mut TokenReader) -> ParseResult<Node> {
debug!("#path_leaves_all");
Self::eat_token(tokenizer);
@@ -164,6 +166,7 @@ impl Parser {
})
}
+ #[allow(clippy::unnecessary_wraps)]
fn path_in_all(prev: Node, tokenizer: &mut TokenReader) -> ParseResult<Node> {
debug!("#path_in_all");
Self::eat_token(tokenizer);
@@ -174,6 +177,7 @@ impl Parser {
})
}
+ #[allow(clippy::unnecessary_wraps)]
fn path_in_key(prev: Node, tokenizer: &mut TokenReader) -> ParseResult<Node> {
debug!("#path_in_key");
Ok(Node {
diff --git a/vendor/jsonpath_lib/src/select/cmp.rs b/vendor/jsonpath_lib/src/select/cmp.rs
index 209e67298..6d2eaef17 100644
--- a/vendor/jsonpath_lib/src/select/cmp.rs
+++ b/vendor/jsonpath_lib/src/select/cmp.rs
@@ -1,4 +1,3 @@
-use array_tool::vec::{Intersect, Union};
use serde_json::Value;
pub(super) trait Cmp {
@@ -31,7 +30,17 @@ impl Cmp for CmpEq {
}
fn cmp_json<'a>(&self, v1: &[&'a Value], v2: &[&'a Value]) -> Vec<&'a Value> {
- v1.to_vec().intersect(v2.to_vec())
+ let mut ret = vec![];
+
+ for a in v1 {
+ for b in v2 {
+ if a == b {
+ ret.push(*a);
+ }
+ }
+ }
+
+ ret
}
}
@@ -51,7 +60,17 @@ impl Cmp for CmpNe {
}
fn cmp_json<'a>(&self, v1: &[&'a Value], v2: &[&'a Value]) -> Vec<&'a Value> {
- v1.to_vec().intersect_if(v2.to_vec(), |a, b| a != b)
+ let mut ret = vec![];
+
+ for a in v1 {
+ for b in v2 {
+ if a != b {
+ ret.push(*a);
+ }
+ }
+ }
+
+ ret
}
}
@@ -151,7 +170,7 @@ impl Cmp for CmpAnd {
}
fn cmp_json<'a>(&self, v1: &[&'a Value], v2: &[&'a Value]) -> Vec<&'a Value> {
- v1.to_vec().intersect(v2.to_vec())
+ CmpEq.cmp_json(v1, v2)
}
}
@@ -171,7 +190,17 @@ impl Cmp for CmpOr {
}
fn cmp_json<'a>(&self, v1: &[&'a Value], v2: &[&'a Value]) -> Vec<&'a Value> {
- v1.to_vec().union(v2.to_vec())
+ let mut ret = [v1, v2].concat();
+
+ for x in (0..ret.len()).rev() {
+ for y in (x+1..ret.len()).rev() {
+ if ret[x] == ret[y] {
+ ret.remove(y);
+ }
+ }
+ }
+
+ ret
}
}
diff --git a/vendor/jsonpath_lib/src/select/expr_term.rs b/vendor/jsonpath_lib/src/select/expr_term.rs
index ddbf64e53..f777880ab 100644
--- a/vendor/jsonpath_lib/src/select/expr_term.rs
+++ b/vendor/jsonpath_lib/src/select/expr_term.rs
@@ -186,10 +186,10 @@ impl<'a> ExprTerm<'a> {
}
}
-impl<'a> Into<ExprTerm<'a>> for &Vec<&'a Value> {
- fn into(self) -> ExprTerm<'a> {
- if self.len() == 1 {
- match &self[0] {
+impl<'a> From<&Vec<&'a Value>> for ExprTerm<'a> {
+ fn from(vec: &Vec<&'a Value>) -> Self {
+ if vec.len() == 1 {
+ match &vec[0] {
Value::Number(v) => return ExprTerm::Number(v.clone()),
Value::String(v) => return ExprTerm::String(v.clone()),
Value::Bool(v) => return ExprTerm::Bool(*v),
@@ -197,11 +197,10 @@ impl<'a> Into<ExprTerm<'a>> for &Vec<&'a Value> {
}
}
- ExprTerm::Json(None, None, self.to_vec())
+ ExprTerm::Json(None, None, vec.to_vec())
}
}
-
#[cfg(test)]
mod expr_term_inner_tests {
use serde_json::{Number, Value};
diff --git a/vendor/jsonpath_lib/src/select/mod.rs b/vendor/jsonpath_lib/src/select/mod.rs
index a3d0ec43f..9217b5b5e 100644
--- a/vendor/jsonpath_lib/src/select/mod.rs
+++ b/vendor/jsonpath_lib/src/select/mod.rs
@@ -44,6 +44,8 @@ pub enum JsonPathError {
Serde(String),
}
+impl std::error::Error for JsonPathError {}
+
impl fmt::Debug for JsonPathError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self)
diff --git a/vendor/jsonpath_lib/src/select/value_walker.rs b/vendor/jsonpath_lib/src/select/value_walker.rs
index e7b4de0e0..87a0defff 100644
--- a/vendor/jsonpath_lib/src/select/value_walker.rs
+++ b/vendor/jsonpath_lib/src/select/value_walker.rs
@@ -6,11 +6,7 @@ pub(super) struct ValueWalker;
impl<'a> ValueWalker {
pub fn all_with_num(vec: &[&'a Value], tmp: &mut Vec<&'a Value>, index: f64) {
Self::walk(vec, tmp, &|v| if v.is_array() {
- if let Some(item) = v.get(index as usize) {
- Some(vec![item])
- } else {
- None
- }
+ v.get(index as usize).map(|item| vec![item])
} else {
None
});
@@ -24,10 +20,7 @@ impl<'a> ValueWalker {
});
} else {
Self::walk(vec, tmp, &|v| match v {
- Value::Object(map) => match map.get(key) {
- Some(v) => Some(vec![v]),
- _ => None,
- },
+ Value::Object(map) => map.get(key).map(|v| vec![v]),
_ => None,
});
}
diff --git a/vendor/jsonpath_lib/tests/lib.rs b/vendor/jsonpath_lib/tests/lib.rs
index cacc9254a..907af051d 100644
--- a/vendor/jsonpath_lib/tests/lib.rs
+++ b/vendor/jsonpath_lib/tests/lib.rs
@@ -57,7 +57,7 @@ fn selector() {
{
let json = selector(path).unwrap();
compare_result(json, target);
- };
+ }
let json_obj = read_json("./benchmark/data_obj.json");
let mut selector = jsonpath::selector(&json_obj);
@@ -94,7 +94,7 @@ fn selector_as() {
{
let json = selector(path).unwrap();
assert_eq!(json, target);
- };
+ }
let json_obj = read_json("./benchmark/data_obj.json");
let mut selector = jsonpath::selector_as::<Friend>(&json_obj);