chadmespath 0.3.0

JMESPath for JSON — a fork of jmespath 0.3 (MIT) adding Expression::search_cached, which evaluates against a pre-converted Rcvar so a document is converted once, not per query. Used by chadselect.
Documentation
# chadmespath: a minimal fork of `jmespath` 0.3.0 (MIT, Michael Dowling) carrying
# a single additive change — `Expression::search_cached`, which evaluates against
# a pre-converted `Rcvar` instead of re-converting the input on every call.
#
# Why the fork: upstream `Expression::search<T: ToJmespath>` runs `to_jmespath()`
# on its argument every call. On stable Rust that means a full serde walk of the
# whole document into a fresh `Rc<Variable>` tree per query (the zero-cost
# identity `impl ToJmespath for Rcvar` is gated behind the nightly-only
# `specialized` feature). A consumer that converts the document once and caches
# the `Rcvar` cannot use that cache through `search()` — so this fork exposes a
# method that takes the already-converted tree directly. Library-only: the
# upstream build.rs / generated compliance tests / benches are dropped.
[package]
edition = "2018"
name = "chadmespath"
version = "0.3.0"
authors = [
    # Original jmespath.rs author (MIT):
    "Michael Dowling <mtdowling@gmail.com>",
    # chadmespath fork maintainer:
    "Cerberus <markjacksoncbt@gmail.com>",
]
description = "JMESPath for JSON — a fork of jmespath 0.3 (MIT) adding Expression::search_cached, which evaluates against a pre-converted Rcvar so a document is converted once, not per query. Used by chadselect."
homepage = "https://github.com/markjacksoncerberus/chadmespath"
documentation = "https://docs.rs/chadmespath/"
keywords = ["json", "jmespath", "query"]
categories = ["parsing"]
license = "MIT"
repository = "https://github.com/markjacksoncerberus/chadmespath"
readme = "README.md"

[dependencies.lazy_static]
version = "1.4"

[dependencies.serde]
version = "1"
features = ["rc"]

[dependencies.serde_json]
version = "1"

[features]
specialized = []
sync = []